如何从firebase下载图像?云火库?福布斯存储?

Posted

技术标签:

【中文标题】如何从firebase下载图像?云火库?福布斯存储?【英文标题】:How to download images from firebase? Cloud firestore? Forbebase Storage? 【发布时间】:2021-05-03 01:45:58 【问题描述】:

我是 Flutter 的新手,我为网络构建了一个应用程序,承包商将使用它为他们的工作拍照并上传它们,以便我们的团队可以对其进行审核。目前,我已将其送入火库。他们输入他们的工作订单号,然后可以访问图库或照片并选择它并点击上传,然后它会进入火存储。

我想建立另一个页面,我们的团队可以在其中输入工作订单号并提取所有照片。我将它们存储在 FBS 中,路径 = '$workOrder/$dateTime';我知道你不能真正使用 firebase 存储,最好对数据库中图像的所有 URL 运行查询。

我找不到太多关于使用 Firestore 抓取照片的信息。

但我是初学者,希望了解有关如何解决此问题的任何建议。

(我知道只做iosandroid更好,但我想做flutter web)

下面是我上传到FB的方法

Future<PickedFile> pickImage() async 
    try 
      return await ImagePicker().getImage(source: ImageSource.gallery, imageQuality: 10);

     catch (error) 
      print('error loading image : $error');
      return null;
    
  


  uploadPhotos(PickedFile pickedFile) async 
    final dateTime = DateTime.now();
    final workOrder = double.parse(workOrderNumber.value.text);
    final path = '$workOrder/$dateTime';
    var fileByte = await pickedFile.readAsBytes();

   setState(() 
     _uploadTask = fb
         .storage()
         .refFromURL('****')
         .child(path)
         .put(fileByte, fb.UploadMetadata(contentType: 'image/png'));
   );

【问题讨论】:

【参考方案1】:

通常对于类似的任务,我会在图片上传后得到downloadURL,并将其存储在相应订单的firestore文档中;每当订单发生请求时,从 firestore 文档中检索图像下载 url 并从 Firebase Storage 下载图像文件。

参考:https://firebase.flutter.dev/docs/storage/usage/

如果您将它们存储在 FBS 中,路径 = $workOrder/$dateTime,那么每当用户搜索订单时,您必须获取 $workOrder 存储文件夹中的所有图像,如果我没记错的话!

参考:How to get a list of all files in Cloud Storage in a Firebase app?

【讨论】:

谢谢你我试试看!【参考方案2】:

一种方法是将图像上传到 Firebase 存储时,它会为您提供图像/文件的 downloadUrl。将该 donwloadUrl 存储在数据库中,例如 firestore。您可以稍后使用该 downloadUrl 访问上传的图像/文件。

另一种方法是,您可以将 downloadUrl 获取到 firebase 存储中所有上传的图像/文件,然后对它们进行操作。

您可以使用以下代码 sn-p 将downloadUrl 获取到已上传的图像/文件:

final result = await FirebaseStorage.instance.ref().listAll();

result.items.forEach((Reference ref) 
  ref.getDownloadURL().then((value) 
    print(value); // value variable will have the link to the file in firebase storage
  );
);

【讨论】:

谢谢你试试看!

以上是关于如何从firebase下载图像?云火库?福布斯存储?的主要内容,如果未能解决你的问题,请参考以下文章

如何让用户从 web 应用程序上的 firebase 存储下载图像?

如何从 Firebase 存储中获取调整大小的图片下载 URL

如何从 Firebase 存储中检索图像预览?

如何从 Firebase 存储下载 URL 中删除查询字符串

如何从 Android 上的 Firebase 存储正确下载多个文件?

从 Firebase 存储网络下载图像 - vuejs