如何从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 抓取照片的信息。
但我是初学者,希望了解有关如何解决此问题的任何建议。
(我知道只做ios或android更好,但我想做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 存储下载 URL 中删除查询字符串