每次我运行此脚本时,它都显示"未连接"第一次和之后"连接"。为什么它总是触发"没有连接"第一? 有一些主题有同样的问题,例如link,但没有答案。
var connectedRef = firebase.database().ref(".info/connected");
connectedRef.on("value", function(snap) {
if (snap.val() === true) {
alert("connected");
} else {
alert("not connected");
}
});
答案 0 :(得分:0)
这是Firebase的正常,有目的的功能,可以避免任何竞争条件。
参考文档:
the time.strftime()
function
请注意,您的应用应该在a之前对断开连接操作进行排队 用户被标记为在线,以避免在任何竞争条件下发生 在两个命令都可以之前,客户端的网络连接丢失 发送到服务器。
答案 1 :(得分:0)
加载页面时,Firebase客户端最初未连接到其后端服务器。因此,它将.info/connected
标记为false
。
然后开始构建连接,这可能需要一些时间。如果/当它建立连接时,它将.info/connected
标记为true
。
这是预期的行为。如果它导致您的应用出现问题,您可能会尝试将该指标用于可能不适合的某些内容。如果是这种情况,如果您共享用例,则可能更容易提供帮助。