【问题标题】:Firebase Offline iOS: How to keep in sync reliably?Firebase Offline iOS:如何可靠地保持同步?
【发布时间】:2017-03-27 23:42:08
【问题描述】:

我在我的应用中离线使用 Firebase,以在用户蜂窝信号接收不佳的情况下保留功能。

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {    
    FIRApp.configure()
    FIRDatabase.database().persistenceEnabled = true
    let all = FIRDatabase.database().reference(withPath:"all")
    all.keepSynced(true)
...

但是,我注意到数据并不总是新鲜的。有时在其他地方修改的数据直到强制退出才会显示。此外,有时新创建的数据在注销并重新登录后不会出现。

有没有手动同步的功能?

【问题讨论】:

    标签: ios swift firebase firebase-realtime-database synchronization


    【解决方案1】:

    不,Firebase 不会导出手动数据库同步 API。我怀疑他们不是因为 云可扩展性 问题等等。

    您现在能做的最好的事情就是继续使用FIRDatabaseReference.keepSynced API。文档说明了这一点(但肯定可以改进!):

    通过在某个位置调用keepSynced(true),该位置的数据将自动下载并保持同步,即使该位置没有附加侦听器。此外,虽然位置保持同步,但不会从永久磁盘缓存中逐出。


    话虽如此,在设计联网应用程序时始终牢记Fallacies of Distributed Computing 是值得的。尤其是前三个:

    1. 网络可靠。
    2. 延迟为零。
    3. 带宽是无限的。

    换句话说,为最坏的情况设计并为最好的希望:-)

    【讨论】:

    • 嘿@cdstamper,如果这回答了您的问题,请务必将其标记为已接受的答案。谢谢;)
    猜你喜欢
    • 1970-01-01
    • 2017-05-19
    • 2012-10-04
    • 1970-01-01
    • 1970-01-01
    • 2017-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多