【问题标题】:getting image from firebase storage not working从 Firebase 存储中获取图像不起作用
【发布时间】:2020-07-06 13:50:55
【问题描述】:

我是 Flutter 的新手,我正在尝试制作一个应用程序,该应用程序从用户那里获取数据并从中制作一个小部件(分类广告),到目前为止一切正常。但是来自 firebase 存储的图像没有加载,我在数据库中有图像 url,

因为它的工作名称

Text(snapshot.data.documents[index]['item Name'],),

但是对于图像它会给出错误

index == null
  ? Image.asset('assets/afghan.png')
: Image.network(snapshot.data.documents[index]['image 1 Url'],),

错误

无效参数:URI 文件中未指定主机:///data/user/0/com.example.thisOne/cache/image_picker1382407617041908118.jpg

【问题讨论】:

    标签: flutter dart


    【解决方案1】:

    改变这个:

    Image.network(snapshot.data.documents[index]['image 1 Url'],)
    

    进入这个:

    Image.file(snapshot.data.documents[index]['image 1 Url'],)
    

    图片 url 无效,这是您必须将图片保存到数据库中的方式:

              StorageTaskSnapshot snapshot = await storage
                  .ref()
                  .child("images/$imageName")
                  .putFile(file)
                  .onComplete;
              if (snapshot.error == null) {
                final String downloadUrl =
                    await snapshot.ref.getDownloadURL();
                await Firestore.instance
                    .collection("images")
                    .add({"url": downloadUrl, "name": imageName});
                setState(() {
                  isLoading = false;
                });
    

    您没有将其正确保存到数据库中,您需要从包含有效 url (https://...) 的 firebase 存储中获取 downloadUrl 并将其添加到 Firestore。然后你可以使用Image.network

    【讨论】:

    • 谢谢,但我没弄明白你能不能给我写个函数来上传图片并获取 URL
    • putFile 将文件上传到存储,getDownlosdUrl 获取 url
    猜你喜欢
    • 2017-12-29
    • 2018-03-02
    • 1970-01-01
    • 2020-04-23
    • 2017-07-17
    • 2018-03-21
    • 2021-04-05
    相关资源
    最近更新 更多