Flutter从Firebase存储下载URL

问题描述 投票:1回答:2

我正在尝试从Firebase存储加载缩略图,以提高我的应用程序的性能。加载缩略图后,应显示实际图像。出于这个原因,我实现了一个云功能,它自动上传每个图像的缩略图。

从上传的图像中获取下载URL没有问题。但由于原因,缩略图的生成需要3秒,我无法从缩略图中自动检索下载URL。

这是我到目前为止所得到的:

   Future uploadImage(var imageFile) async {

 var uuid = new Uuid().v1();
 StorageReference ref = FirebaseStorage.instance.ref().child("post_$uuid.jpg");
 StorageUploadTask uploadTask = ref.putFile(imageFile);
 String downloadUrl = await (await uploadTask.onComplete).ref.getDownloadURL();

 StorageReference reff = FirebaseStorage.instance.ref().child("thumb_post_$uuid.jpg");
 String url = (await reff.getDownloadURL()).toString();

 setState(() {
   downloadUrlThumb = url;
   downloadUrlFull = downloadUrl;
 });
}

有关如何等待上传的缩略图或我如何延迟getDownloadURL()downloadUrlThumb()方法的任何想法?

dart flutter firebase-storage
2个回答
2
投票

完成缩略图创建后,您可以将记录写入数据库 并订阅该表的更新,以便在添加记录时在客户端应用程序中收到通知。 如果将上载文件(或缩略图路径)的路径写入数据库,则可以确定已完成的上载/缩略图创建。


0
投票

在云功能中,您可以在生成缩略图后将URL保存到firestore中。

示例:保存记录后

{
   hello: "world",
   imageUrl: "asldnbalskd.firebase.storage.com"
}

大约5秒钟后生成缩略图

{
   hello: "world",
   imageUrl: "asldnbalskd.firebase.storage.com",
   imageUrlThumbnail: "thumbnail-asldnbalskd.firebase.storage.com"
}

在颤动的一面,你可以只听取文件的任何变化。

© www.soinside.com 2019 - 2024. All rights reserved.