【发布时间】:2016-04-28 09:28:18
【问题描述】:
有没有办法使用 iOS SDK 手动立即刷新 Firebase 缓存以提取最新数据(假设您在线)?例如,如果我对 Firebase 上的数据进行了一些更改,我希望我的应用立即反映这一点,但在启用持久性的情况下,通常需要重新启动几次应用。
我最近在我的应用中打开了持久性,如下所示:
Firebase.defaultConfig().persistenceEnabled = true
效果很好,但现在我的应用程序即使有互联网连接也不会经常刷新它的数据。我正在使用here 提到的离线功能。
【问题讨论】:
-
"打开持久性,通常需要重新启动应用程序" 这不应该发生,除非您使用
observeSingleEventOfType。由于observeSingleEventOfType将立即为缓存版本触发,因此它永远不会获得新版本。解决方案是不要同时使用observeSingleEventOfType和persistenceEnabled = true。 -
为确保缓存自动更新,请致电
[ref keepSynced: YES];。 firebase.com/docs/ios/guide/… -
所以根据你的第一条评论,如果我使用
observeSingleEventOfType,即使keepSynced也不起作用? -
如果我没记错的话,这是 Google 收购 Firebase 时的
FIRDatabase.database().persistenceEnabled = true。 -
现在在 Swift 3 中,实际上是
Database.database().isPersistenceEnabled = true:)
标签: ios swift caching firebase