哪些 Firebase 离线功能可用于测验应用程序 (ios)

Which Firebase Offline Capabilities to use for a quiz app (ios)

我正在 XCode (Swift 3.0) 中制作一个简单的测验应用程序,但是 运行 有几个与 Firebase 相关的问题,我真的很想得到一些帮助.首先,让我解释一下我要做什么:

  1. 我想将问题库存储在 Firebase 上,以便我可以添加、删除和更新问题,然后让它们在用户手机上自动更新,而无需通过 AppStore 进行更新。

  2. Firebase 上应该存储每个用户的一些 "meta" 数据,例如昵称和已完成问题的 ID 列表,这样同一个问题就不会被问两次。我想在 Firebase 上拥有这些数据的原因是我想允许用户从不同的设备登录并从他们之前所在的位置获取数据。

  3. 如果可能的话,我想尽量减少对 Firebase 的调用次数,这样应用程序就不会过多地使用用户的漫游。

我查看了 Firebase 离线功能,我的问题是:

  1. 我不太明白 .isPersistenceEnabled 和 .keepSynced 之间的区别 - 如果有人能解释一下,我将不胜感激。

  2. 对于上述要求,您建议我做什么(.keepSynced、.isPersistenceEnabled 或其他?)

提前致谢!

启用持久性会设置一个基于本地磁盘的数据缓存,该缓存之前已从 Firebase 实时数据库读取。

引用上的 keepSynced() 相当于在引用上添加一个空侦听器。这具有确保服务器上该位置的任何更改将自动下载到客户端的效果。这不会在应用程序被杀死后持续。如果您希望始终启用此功能,则必须对您的应用进行编码以在每次启动时调用它。

当您使用 keepSynced() 并启用持久性时,这意味着客户端缓存应始终包含来自服务器的最新数据,只要客户端具有接收这些更新的连接。这意味着其他侦听器将立即从该位置接收和缓存数据。