Fehler beim Abrufen einer Download-URL aus dem Firebase-Speicher (Bei der gewünschten Referenz ist kein Objekt vorhanden.)
Ich habe versucht, die Download-URL für meine Bilder im Firebase-Speicher abzurufen, damit ich sie für jedes meiner Elemente in der Liste zu meinen Listenansicht-Erstellern "NetworkCatched Images" hinzufügen kann. Wie Sie aus meinem Code unten sehen können, habe ich zuerst eine deklariert Variable am Anfang meiner statusbehafteten Klasse namens "URL", damit ich den Wert ändern kann, indem ich ihn gleich der Download-URL mache, die ich aus dem Firebase-Speicher erhalte, aber es scheint, dass die von mir verwendete asynchrone Funktion nicht einmal ausgeführt wird, weil i Ich habe sichergestellt, dass der Wert der heruntergeladenen URL ausgedruckt wird, nachdem dies erledigt ist. In meiner Debug-Konsole wird jedoch nichts angezeigt. Wo geht hier etwas schief?
Ich bekomme immer wieder diesen Fehler No object exists at the desired reference.
Übrigens ist das "thesnapshot.data()['image']"
in meinem Code gleich dem Namen der Bilddatei, z. B. books.jpg
der genaue Name der Datei, und es befindet sich in einem Ordner namens Kategorie, wie Sie unten sehen können. Ich würde mich sehr über eine Aufklärung darüber freuen, danke
class Home extends State<HomeScreen> {
var url;
ListView.builder(shrinkWrap: true, padding: EdgeInsets.all(0), physics: NeverScrollableScrollPhysics(), itemCount: snapshot.data.documents.length, itemBuilder: (BuildContext context, int index)
{
DocumentSnapshot thesnapshot = snapshot.data.docs[index];
current_category = thesnapshot.data()['category'];
printUrl() async {
Reference ref = FirebaseStorage.instance.ref().child("category/" + thesnapshot.data()['image'].toString());
var togo = (await ref.getDownloadURL()).toString();
setState(() {
url = togo;
print(url);
});
}
printUrl();
Antworten
Ich denke, dass die in Ihrer Referenz enthaltene .ref () nicht so gut funktioniert wie die thesnapshot.data () ['image']. ToString ().
Versuchen Sie so etwas
Future<void> downloadURLExample() async {
String downloadURL = await firebase_storage.FirebaseStorage.instance
.ref('users/123/avatar.jpg')
.getDownloadURL();
Auszug aus der Dokumentation