【问题标题】:Failing to get a download URL from firebase storage(No object exists at the desired reference.)无法从 Firebase 存储中获取下载 URL(所需参考中不存在对象。)
【发布时间】:2021-03-06 01:55:15
【问题描述】:

我一直在尝试在 firebase 存储中获取我的图像的下载 URL,以便我可以将其添加到列表中每个项目的列表视图构建器“NetworkCatched Images”中,正如您从下面的代码中看到的那样,我首先在我的有状态类的开头声明了一个名为“URL”的变量,因此我可以通过使其等于我从 Firebase 存储获得的下载 URL 来更改该值,但似乎我正在使用的异步函数甚至没有运行,因为我确保它在完成后打印出下载的 URL 的值,但我在调试控制台中什么也没看到,这里哪里出错了?

我不断收到此错误No object exists at the desired reference.

顺便说一句,我的代码中的"thesnapshot.data()['image']" 等于图像文件的名称,例如books.jpg,它是文件的确切名称,它位于一个名为category 的文件夹中,如下所示,将非常感谢对此的一些启发,谢谢

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();

                                                          

【问题讨论】:

    标签: android firebase flutter dart google-cloud-firestore


    【解决方案1】:

    我认为您的参考中包含的 .ref() 不如 thesnapshot.data()['image'].toString() 那样好。

    试试这样的

    Future<void> downloadURLExample() async {
      String downloadURL = await firebase_storage.FirebaseStorage.instance
          .ref('users/123/avatar.jpg')
          .getDownloadURL();
    

    摘自documentation

    【讨论】:

      猜你喜欢
      • 2020-12-09
      • 2016-09-18
      • 2018-12-08
      • 2018-07-04
      • 2021-09-09
      • 2020-11-22
      • 1970-01-01
      • 1970-01-01
      • 2020-01-31
      相关资源
      最近更新 更多