繁体   English   中英

在Flutter中,如何使用CachedNetworkImage显示来自Firebase的脱机图像?

[英]In Flutter how do I show offline images from Firebase using CachedNetworkImage?

我正在尝试使我的Flutter应用程序可与Firebase脱机使用。 我将对图像的引用存储在Firestore中,并将图像文件存储在Storage中。 我的Firestore部分正常工作,并且正在使用CachedNetworkImageProvider来显示我的图像,该图像将缓存以供脱机使用。 但是,当我离线时,即使图像已缓存,也无法获取图像的URL,因此无法将其传递给CachedNetworkImageProvider,后者使用URL作为密钥。

因此,在离线状态下,我知道图像路径,并且文件已存储在设备上,我只需要一种获取URL的方法。

我是否需要手动从设备上的存储中存储下载URL,以便可以脱机使用它们? 或者,还有更好的方法?

获取网址的代码:

// this doesn't work offline
category.url = await storage
    .ref()
    .child("category_images/drawable-${DeviceInfo.dpiString}")
    .child(document.data["media"]["src"])
    .getDownloadURL();

显示图像的代码:

image: new CachedNetworkImageProvider(_category.url),

您还需要保存URL。 一个好的地方可能是您在Firestore中拥有的图像参考中。

另一个选择是使用本地文件,因为您说知道路径,尽管我认为通过URL进行引用更干净。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM