【问题标题】:In Flutter how do I show offline images from Firebase using CachedNetworkImage?在 Flutter 中,如何使用 CachedNetworkImage 显示来自 Firebase 的离线图像?
【发布时间】:2018-10-30 07:20:45
【问题描述】:

我正在尝试让我的 Flutter 应用与 Firebase 脱机工作。我将对我的图像的引用存储在 Firestore 上,并将图像文件存储在 Storage 上。我让 Firestore 部分工作,我正在使用 CachedNetworkImageProvider 来显示我的图像,这些图像会缓存以供离线使用。但是当我离线时,即使图片被缓存了,我也无法获取图片的URL,所以我无法将它传递给CachedNetworkImageProvider,它以URL为key。

所以在离线时我知道图像路径,并且我将文件存储在设备上,我只需要一种获取 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),

【问题讨论】:

    标签: android firebase dart flutter firebase-storage


    【解决方案1】:

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

    另一个选项是使用本地文件,因为您说您知道路径,但我认为通过 URL 引用更简洁。

    【讨论】:

    • 我以为我不应该因为令牌而保存 URL,但你的回答让我挖了北斗,我发现令牌实际上与内容相关,而不是用户或日期,这意味着我可以存储和使用它。我会接受你的回答。谢谢!
    猜你喜欢
    • 2023-01-14
    • 2018-11-22
    • 1970-01-01
    • 1970-01-01
    • 2021-09-11
    • 2021-05-21
    • 2020-09-13
    • 1970-01-01
    • 2021-10-29
    相关资源
    最近更新 更多