2017-07-02 151 views
-1

我正在XCode(Swift 3.0)中制作一个简单的测验应用程序,但遇到了一些与Firebase相关的问题,我真的想得到一些帮助。首先,让我解释什么,我试图做的:哪些Firebase离线功能用于测验应用程序(ios)

  1. 我想存储在火力地堡题库,这样我可以添加,删除和更新的问题,然后让它们自动更新用户的手机不需要通过AppStore进行更新。

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

  3. 如果可能,我想尽量减少对Firebase的调用次数,以免应用程序过度使用用户的漫游。

我已经看过了火力地堡离线功能,和我的问题是:

  1. 我真的不明白.isPersistenceEnabled和.keepSynced之间的区别 - 如果任何人都可以解释这一点,我将非常感激。

  2. 对于上述要求,你会建议我做(.keepSynced,.isPersistenceEnabled,或别的东西吗?)

非常感谢提前!

回答

2

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

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

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