我看到有一个onDisconnect()firebase方法,但看起来该方法旨在更新当前客户端设备已脱机的其他客户端设备。对我来说这不是很有用。我们所有的API调用都来自一个中央服务器,它处理我们其他客户端设备的更新。
基本上,我只有一个客户端设备与firebase服务器进行通信...永远。所以我的问题是,当单个设备失去连接时我怎么知道?这可能是最令人沮丧的部分,不仅我不知道何时失去连接,而且我仍在进行调用,就像每个命令都成功一样。
离线行为
每个共享Firebase的客户端都会维护自己内部版本的所有活动数据。更新或保存数据时,会将其写入Firebase的本地版本。然后,Firebase客户端会以“尽力而为”的方式将这些数据与Firebase服务器以及其他客户端同步。
因此,在将任何数据写入服务器之前,对Firebase的所有写入都将立即触发本地事件。这意味着无论网络延迟或互联网连接如何,应用都将保持响应。
重新建立连接后,我们将收到适当的事件集,以便客户端“赶上”当前的服务器状态,而无需编写任何自定义代码。
答案 0 :(得分:3)
在Firebase指南中查看Detecting Connection State。它描述了您可以监视客户端身份验证状态更改的魔术数据位置/.info/connected
。
注意:对于版本3.0+,请参阅onDisconnect