似乎Firebase iOS 实现不支持客户端模型的离线缓存。这在实践中意味着:
- 对于需要身份验证的 Firebase 应用,您需要先进行身份验证并等待 Firebase 完成登录(检查用户身份、打开套接字等),然后才能开始移动数据。这将需要 1-8 秒(通常为 2-5),具体取决于网络条件,至少在芬兰是这样。
- 身份验证后,Firebase 首先下载初始数据集并初始化客户端缓存。执行此操作的时间取决于您为其添加监听器的数据的大小,但通常会很快。
这里的问题是,如果您使用 Firebase 来实现,例如消息传递应用程序,您很可能希望在与后台服务器建立。
我假设正确的实现需要处理:
- 客户端模型 <-> Firebase JSON 映射(我使用 Mantle 这个)
- 将客户端模型保存到磁盘(使用 NSKeyedArchiver 或 Core Data 等手动实现?)
- 当连接可用时,将磁盘模型与内存中的 Firebase 链接模型同步(手动实现?)
有没有人提出解决方案(自己的或第 3 方)来实现 2) 和 3)?
最佳答案
自从提出这个问题以来,Firebase 似乎已经解决了这个问题。 Offline Capabilities上有很多资源现在使用 Firebase,包括 disk persistence .
对我来说,打开持久性就像在我的 AppDelegate 中执行以下操作一样简单:
Firebase.defaultConfig().persistenceEnabled = true
假设您的应用至少已通过互联网连接运行过一次,这应该可以很好地加载数据的最新本地副本。
关于ios - 如何在 iOS 中将 Firebase 对象持久保存到磁盘?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24447085/