如何缓存 Firebase 数据以供离线使用?

Posted

技术标签:

【中文标题】如何缓存 Firebase 数据以供离线使用?【英文标题】:How do I cache Firebase data for offline usage? 【发布时间】:2014-05-15 14:55:20 【问题描述】:

我构建了捆绑 JSON 数据的应用程序。我想切换到 Firebase 作为我的后端,但我需要确保即使 firebase 处于离线状态我也可以访问数据。无法保证用户在启动应用程序时会连接到互联网。数据由相当大的 JSON blob 组成。

我听说 Firebase 会在 ios 上缓存数据以供离线访问,这很棒。我只需要知道如何在第一次运行应用程序时捆绑数据,以便用户可以在连接到网络之前使用应用程序。

【问题讨论】:

我知道这是很久以前的事了,但你找到解决办法了吗? 我最近没有检查过,但他们已经承诺过一段时间了,所以我希望它会在那里。但是,如果你在这里写,这可能意味着它还不可用。 【参考方案1】:

正如您所发现的,Firebase Obj-C 客户端确实具有离线访问/磁盘持久性的 beta 支持。详情可见here。

但这并不能满足您使用初始数据“播种”应用程序的愿望,以便在应用程序能够连接到 Firebase 之前获得可用数据。不幸的是,没有直接的支持。

您可以尝试使用 Firebase 的一个 hacky 解决方案是只对有问题的数据执行 setValue,以便为缓存设置种子。这应该可行,但最终会在应用程序连接时尝试将该数据写入 Firebase,因此您可能希望有安全规则来防止用户实际修改该数据。正如我所说,这将是一个 hacky 解决方案。

目前最好在您的应用中使用特殊逻辑来处理此问题,该逻辑从其他数据源(硬编码值或嵌入文件或其他)提取数据,直到您第一次从 Firebase 获取数据。

抱歉,目前没有对此的直接支持。我们会看看将来是否可以更直接地支持这一点。

【讨论】:

有这方面的消息吗?另请参阅这篇文章:***.com/questions/39602673/… 如果 Firebase 可以支持这一点,这对于我们的应用程序来说将是一个很好的解决方案,目前我们正在与一个 sqlite 数据库同步并在应用程序启动时重新加载所有内容

以上是关于如何缓存 Firebase 数据以供离线使用?的主要内容,如果未能解决你的问题,请参考以下文章

Monotouch - 缓存地图以供离线使用

缓存图像以供离线使用 SDWebImage

如何在flutter mobile中保存网站以供离线使用

如何根据每个用户存储应用内购买以供离线使用

如何在 JavaScript 中保存网站以供离线使用

如何在 Android 中存储媒体 DRM 密钥以供离线使用