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

Ric*_*nia 2 android dart firebase flutter firebase-storage

我正在尝试使用 Firebase 使我的 Flutter 应用离线工作。我在 Firestore 上存储了对我的图像的引用,在 Storage 上存储了图像文件。我让 Firestore 部分正常工作,并且我使用 CachedNetworkImageProvider 来显示我的图像,该图像缓存以供离线使用。但是当我离线时,即使图像被缓存,我也无法获取图像的URL,因此无法将其传递给以URL为键的CachedNetworkImageProvider。

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

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

获取网址的代码:

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

显示图像的代码:

image: new CachedNetworkImageProvider(_category.url),
Run Code Online (Sandbox Code Playgroud)

Edm*_*man 6

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

另一种选择是使用本地文件,因为您说您知道路径,但我认为通过 URL 引用更清晰。