Impossible d'obtenir une URL de téléchargement à partir du stockage Firebase (aucun objet n'existe à la référence souhaitée.)
J'ai essayé d'obtenir l'URL de téléchargement de mes images dans le stockage Firebase afin de pouvoir l'ajouter à mes constructeurs de vues de liste "Images NetworkCatched" pour chacun de mes éléments dans la liste, comme vous pouvez le voir dans mon code ci-dessous, j'ai d'abord déclaré un variable au début de ma classe avec état appelée "URL" afin que je puisse changer la valeur en la rendant égale à l'URL de téléchargement que j'obtiens à partir du stockage Firebase, mais il semble que la fonction async que j'utilise ne fonctionne même pas car je assurez-vous qu'il imprime la valeur de l'URL téléchargée une fois que c'est fait, mais je ne vois rien dans ma console de débogage, où est-ce que ça va mal ici?
je reçois toujours cette erreur No object exists at the desired reference.
en passant, "thesnapshot.data()['image']"
dans mon code est égal au nom du fichier image, par exemple, books.jpg
qui est le nom exact du fichier et il se trouve dans un dossier appelé catégorie comme vous pouvez le voir ci-dessous, j'apprécierais vraiment quelques éclaircissements à ce sujet, merci
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();
Réponses
Je pense que le .ref () inclus dans votre référence ne va pas aussi bien que le thesnapshot.data () ['image']. ToString ().
Essayez quelque chose comme ça
Future<void> downloadURLExample() async {
String downloadURL = await firebase_storage.FirebaseStorage.instance
.ref('users/123/avatar.jpg')
.getDownloadURL();
Extrait de la documentation