如何在iOS中将Firebase对象保存到磁盘?

Mar*_*uro 2 offline offline-caching ios firebase firebasesimplelogin

看来,火力地堡的iOS实现不支持客户端模式的离线缓存.这在实践中意味着什么:

  • 对于需要身份验证的Firebase应用,您需要首先进行身份验证并等待Firebase完成登录(检查用户身份,打开套接字等),然后才能开始移动数据.这将需要1-8秒(通常为2-5秒),具体取决于网络条件,至少在芬兰这里.
  • 验证后,Firebase首先下载初始数据集并初始化客户端缓存.执行此操作的时间取决于您为侦听器添加的数据的大小,但通常非常快.

这里的问题是,如果您使用Firebase实现,例如消息传递应用程序,您很可能希望在与后端服务器的实际连接之前向用户显示消息线程和消息的先前缓存版本成立.

我假设正确的实现需要处理:

  1. 客户端模型< - > Firebase JSON映射(我使用Mantle)
  2. 将客户端模型保留到磁盘(使用NSKeyedArchiver或Core Data等手动实现?)
  3. 当连接可用时,将磁盘上的模型与内存中与Firebase相关的模型同步(手动实现?)

有没有人想出一个解决方案(自己的或第三方)来实现2)和3)?

tfr*_*377 5

自问这个问题以来,Firebase似乎已经解决了这个问题.现在使用Firebase的离线功能有很多资源,包括磁盘持久性.

对我来说,启用持久性就像我的AppDelegate中的以下内容一样简单:

Firebase.defaultConfig().persistenceEnabled = true
Run Code Online (Sandbox Code Playgroud)

假设您的应用程序至少运行过一次Internet连接,这应该可以很好地加载数据的最新本地副本.