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

哪些Firebase脱机功能可用于测验应用程序(ios),ios,firebase,firebase-realtime-database,offline-caching,Ios,Firebase,Firebase Realtime Database,Offline Caching,我正在用XCode(Swift 3.0)制作一个简单的测验应用程序,但遇到了几个与Firebase相关的问题,我真的很想得到一些帮助。首先,让我解释一下我想做什么: 我想将问题库存储在Firebase上,这样我就可以添加、删除和更新问题,然后在用户手机上自动更新这些问题,而无需通过AppStore进行更新 Firebase上应该存储一些关于每个用户的“元数据”,例如昵称和已完成问题的id列表,这样同一个问题就不会被问两次。我希望在Firebase上拥有这些数据的原因是,我希望允许用户从不同的设备

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

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

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

  • 如果可能的话,我想尽量减少呼叫Firebase的次数,这样应用程序就不会过多地使用用户的漫游功能

  • 我已经研究了Firebase脱机功能,我的问题是:

  • 我真的不明白.isPersistenceEnabled和.keepSynced之间的区别-如果有人能解释这一点,我将不胜感激

  • 对于上面的要求,您建议我做什么(.keepSynced、.isPersistenceEnabled,或其他任何事情?)


  • 提前多谢

    启用持久性将为以前从Firebase实时数据库读取的数据建立基于磁盘的本地缓存

    引用上的keepSynced()相当于在引用上添加空侦听器。这样可以确保对服务器上该位置的任何更改都将自动下载到客户端。这不会在应用程序被终止后持续。如果你想一直启用这个功能,你就必须编写代码,让你的应用程序在每次启动时调用它


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

    启用持久性将建立一个基于本地磁盘的缓存,缓存以前从Firebase实时数据库读取的数据

    引用上的keepSynced()相当于在引用上添加空侦听器。这样可以确保对服务器上该位置的任何更改都将自动下载到客户端。这不会在应用程序被终止后持续。如果你想一直启用这个功能,你就必须编写代码,让你的应用程序在每次启动时调用它

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