无法使用Flatter图像网络从Firebase存储加载图像

无法使用Flatter图像网络从Firebase存储加载图像,firebase,flutter,google-cloud-firestore,firebase-storage,Firebase,Flutter,Google Cloud Firestore,Firebase Storage,我在Firestore中创建了虚拟项目列表,并在存储器中存储了一个图像 这是我读取图像表单的代码 子项:ListView.separated( 尝试查看此项目列表页面时出现的错误如下: ════════ 图像资源服务捕获到异常════════════════════════════════════════════════ 解析图像编解码器时引发以下NetworkImageLoadException: HTTP请求失败,状态代码:404,HTTP://(db名称)。appspot.com/imag

我在Firestore中创建了虚拟项目列表,并在存储器中存储了一个图像

这是我读取图像表单的代码 子项:ListView.separated(

尝试查看此项目列表页面时出现的错误如下:

════════ 图像资源服务捕获到异常════════════════════════════════════════════════ 解析图像编解码器时引发以下NetworkImageLoadException: HTTP请求失败,状态代码:404,HTTP://(db名称)。appspot.com/images/pablo-downloading.png

引发异常时,这是堆栈: #0 NetworkImage.\u loadAsync(包:flatter/src/painting/\u network\u image\u io.dart:95:9) #1 NetworkImage.load(包:flatter/src/painting/_network\u image\u io.dart:48:14) #2 ImageProvider.resolveStreamForKey.(软件包:颤振/src/painting/image_provider.dart:501:13) #3 ImageCache.putIfAbsent(包:flatter/src/painting/image\u cache.dart:359:22) ... 图像提供者:NetworkImage(“http://(db name).appspot.com/images/pablo downloading.png”,比例:1.0) 图像键:NetworkImage(“http://(db name).appspot.com/images/pablo downloading.png”,比例:1.0) ════════════════════════════════════════════════════════════════════════════════════════════════════


这里可能缺少什么?图像url的字符串以“gs://”开头是否正常?每次读取和写入时是否必须进行编码和解码?

上传到firebase存储的每个图像都会生成两个url

  • 存储url(以gs:///开头)
  • 下载url(以https:///开头)
  • 您需要使用下载url

    要在flatter中获得下载url,可以参考以下代码块 存储参考

    firebaseStorageRef=FirebaseStorage.instance.ref().child('fileName');   
    var url = await firebaseStorageRef.getDownloadURL();
    
    要从firebase storage UI控制台获取下载链接,请单击该图像,将出现一个左侧对话框,右键单击带蓝色下划线的图像名称,然后单击“新建”选项卡中的opean

    参考文献

    上传到firebase存储的每个图像都会生成两个URL

  • 存储url(以gs:///开头)
  • 下载url(以https:///开头)
  • 您需要使用下载url

    要在flatter中获得下载url,可以参考以下代码块 存储参考

    firebaseStorageRef=FirebaseStorage.instance.ref().child('fileName');   
    var url = await firebaseStorageRef.getDownloadURL();
    
    要从firebase storage UI控制台获取下载链接,请单击该图像,将出现一个左侧对话框,右键单击带蓝色下划线的图像名称,然后单击“新建”选项卡中的opean

    参考文献

    这是我当前的存储规则。图像url的字符串以gs:///开头是否正常?每次读写时是否都必须进行编码和解码?如何从Flatter中的firebase存储获取图像链接要获取图像链接,可以使用以下代码段
    StorageReference firebaseStorageRef=FirebaseStorage.instance.ref().child('fileName');url=await firebasestageref.getDownloadURL();
    sample firebase storage image link这是我用来从DB读取的getter方法。我还尝试用上面发送的链接替换我的图像的字符串url,但仍然是一样的。getItems(ItemNotifier ItemNotifier)async{QuerySnapshot snapshot=wait itemCollection.getDocuments();List _itemList=[];snapshot.documents.forEach((文档){Item Item=Item.fromMap(document.data);_itemList.add(Item);});itemNotifier.itemList=_itemList;}这是我当前的存储规则。图像url的字符串以gs://开头是否正常?每次读写时是否必须进行编码和解码?如何从Flatter中的firebase存储获取图像链接要获取图像链接,可以使用以下代码段
    StorageReference firebaseStorageRef=FirebaseStorage.instance.ref(){QuerySnapshot snapshot=wait itemCollection.getDocuments();List _itemList=[];snapshot.documents.forEach((文档){Item Item=Item.fromMap(document.data);_itemList.add(Item);});itemNotifier.itemList=_itemList;}