ios - 如何在 iOS 中将 Firebase 对象持久保存到磁盘?

标签 ios firebase offline offline-caching firebasesimplelogin

似乎Firebase iOS 实现不支持客户端模型的离线缓存。这在实践中意味着:

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

这里的问题是,如果您使用 Firebase 来实现,例如消息传递应用程序,您很可能希望在与后台服务器建立。

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

  1. 客户端模型 <-> Firebase JSON 映射(我使用 Mantle 这个)
  2. 将客户端模型保存到磁盘(使用 NSKeyedArchiver 或 Core Data 等手动实现?)
  3. 当连接可用时,将磁盘模型与内存中的 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/

相关文章:

javascript - 如何检查已使用了多少离线存储

ios - 在 UIImage 和 Base64 字符串之间转换

ios - 检测双击 UITabbarController 项目以向上滚动表格 View

ios - 如何从单元格的 awakeFromNib() 方法中将 CAGradientLayer 添加到表格 View 中的单元格?

ios - 无法使用 FCM 向 iOS 发送静默推送通知

android - Android 的 OpenStreetMap 离线地理编码

ios - 替换自定义键盘中预测文本的来源

firebase - 你能在 Firebase 云函数中调用 FFMPEG

swift - 在 Firebase 数据库中按用户名搜索用户?

php - 将 Appcache 与 CodeIgniter 结合使用