如何禁用Firebase实时数据库iOS脱机写入

如何禁用Firebase实时数据库iOS脱机写入,ios,swift,firebase,firebase-realtime-database,offline,Ios,Swift,Firebase,Firebase Realtime Database,Offline,我曾经遇到过这样一个例子:在没有internet的情况下调用setValue()时,firebase数据库返回成功。成功后,该值不会在数据库中更新。我使用的代码如下(在Swift中): 我读了文件,上面说Firebase数据库使用离线写入。我们如何禁用此功能 脱机写入数据 如果客户端失去其网络连接,您的应用程序 将继续正常工作 连接到Firebase数据库的每个客户端都维护自己的 任何活动数据的内部版本。当数据被写入时,它是 首先写入此本地版本。那么Firebase客户端呢 将该数据与远程数据库

我曾经遇到过这样一个例子:在没有internet的情况下调用
setValue()
时,firebase数据库返回成功。成功后,该值不会在数据库中更新。我使用的代码如下(在Swift中):

我读了文件,上面说Firebase数据库使用离线写入。我们如何禁用此功能

脱机写入数据

如果客户端失去其网络连接,您的应用程序 将继续正常工作

连接到Firebase数据库的每个客户端都维护自己的 任何活动数据的内部版本。当数据被写入时,它是 首先写入此本地版本。那么Firebase客户端呢 将该数据与远程数据库服务器和其他数据库服务器同步 以“最大努力”为基础的客户


p/s:我禁用了脱机持久性功能

根据文档,当应用程序脱机时,您最好使用
keepSynced(false)


Firebase构建的前提是,它可以透明地(主要)为用户和开发人员处理间歇性的连接丢失。当客户端未连接到服务器时,没有禁用本地写入的功能


但您可以通过监听
.info/connected
并在应用程序中禁止写入操作(当该位置为
false
时)来实现这一点。有关这方面的更多信息,请参阅Firebase文档中的。

它与tat相关吗?据我所知,KeepSync用于下载数据并存储在本地,但没有提到包括写入。您能详细解释一下吗?对于这种情况,您需要添加
Alamofire
Reachability
以首先检查设备是否脱机,然后如果脱机,则跳过该块。
setValue()
完成侦听器不会触发本地写入。它只会在服务器上提交(或拒绝)数据后触发。我注意到
.info/connected
,我会尽量避免tat,因为它会使应用程序逻辑复杂化。这是唯一的办法吗?
Database.database().reference().child("key").setValue("something") { (error:Error?, ref:DatabaseReference) in
        if error != nil {
            // Show error in UI
        } else {
            // Show done in UI
        }
}
let scoresRef = Database.database().reference(withPath: "scores")
scoresRef.keepSynced(false)