如何禁用Firebase Realtime Database iOS离线写入

时间:2018-12-12 08:07:46

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

我遇到了一种情况,当在没有互联网的情况下调用setValue()时,firebase数据库返回成功。成功后,该值不会在数据库中更新。我正在使用以下代码(在Swift中):

Database.database().reference().child("key").setValue("something") { (error:Error?, ref:DatabaseReference) in
        if error != nil {
            // Show error in UI
        } else {
            // Show done in UI
        }
}

我阅读了文档,并说Firebase数据库使用脱机写入。我们如何禁用它?

  

离线写入数据

     

如果客户端失去网络连接,则您的应用   将继续正常运行。

     

连接到Firebase数据库的每个客户端都维护自己的客户端   任何活动数据的内部版本。写入数据时,   首先写入此本地版本。然后,Firebase客户端   将数据与远程数据库服务器以及其他服务器同步   客户“尽力而为”。

p / s:我禁用了离线持久功能

2 个答案:

答案 0 :(得分:0)

根据文档,最好在应用离线时使用keepSynced(false)

https://firebase.google.com/docs/database/ios/offline-capabilities

let scoresRef = Database.database().reference(withPath: "scores")
scoresRef.keepSynced(false)

答案 1 :(得分:0)

Firebase构建的前提是,它可以(对于用户和开发人员)透明地处理间歇性的连接丢失(大多数情况下)。客户端未连接到服务器时,没有禁用本地写操作的功能。

但是您可以通过监听.info/connected并在该位置为false时禁止应用中的写操作来自己实现。有关更多信息,请参阅Firebase文档中的detecting connection state