如何缓存 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 数据以供离线使用?的主要内容,如果未能解决你的问题,请参考以下文章