看起来Firebase http://www.firebase.comiOS 实现不支持客户端模型的离线缓存。这在实践中意味着:
- 对于需要身份验证的 Firebase 应用程序,您需要首先进行身份验证并等待 Firebase 完成登录(检查用户身份、打开套接字等),然后才能开始移动数据。这将需要 1-8 秒(通常为 2-5 秒),具体取决于网络状况,至少在芬兰是这样。
- 身份验证后,Firebase 首先下载初始数据集并初始化客户端缓存。执行此操作的时间取决于您添加侦听器的数据的大小,但通常很快。
这里的问题是,如果您使用 Firebase 来实现(例如消息传递应用程序),您很可能希望在与后端服务器的实际连接之前向用户显示消息线程和消息的先前缓存版本。已确立的。
我假设正确的实现需要处理:
- 客户端模型 Firebase JSON 映射(我使用 Mantle
这)
- 将客户端模型保存到磁盘(使用 NSKeyedArchiver 或 Core Data 等手动实现?)
- 当连接可用时,将磁盘上的模型与内存中 Firebase 链接的模型同步(手动实现?)
有没有人提出解决方案(自己或第三方)来实现 2)和 3)?
自从提出这个问题以来,Firebase 似乎已经解决了这个问题。上面有很多资源离线能力 https://www.firebase.com/docs/android/guide/offline-capabilities.html现在使用 Firebase,包括磁盘持久化 https://www.firebase.com/docs/android/guide/offline-capabilities.html#section-enabling-offline-support.
对我来说,打开持久性就像我的 AppDelegate 中的以下内容一样简单:
Firebase.defaultConfig().persistenceEnabled = true
假设您的应用程序已通过互联网连接运行至少一次,这应该可以很好地加载数据的最新本地副本。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)