哪个Firebase脱机功能可用于测验应用(ios)

时间:2017-07-02 22:09:42

标签: ios firebase firebase-realtime-database offline-caching

我正在XCode(Swift 3.0)中制作一个简单的测验应用程序,但遇到了几个与Firebase相关的问题,我真的希望得到一些帮助。首先,让我解释一下我要做的事情:

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

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

  3. 如果可能,我希望最小化对Firebase的调用次数,以便应用不使用用户'漫游太多了。

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

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

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

    3. 提前多多感谢!

1 个答案:

答案 0 :(得分:2)

启用持久性设置先前从Firebase实时数据库读取的基于本地磁盘的数据缓存。

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

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