let connectedRef = Database.database().reference(withPath: ".info/connected")
connectedRef.observe(.value, with: { snapshot in
if snapshot.value as? Bool ?? false {
print("Connected")
} else {
print("Not connected")
}
})
我正在使用它来检测我与Firebase的连接状态。我的问题是,当他们是Internet连接时,结果变为“未连接”,然后变为“已连接”。如果他们没有互联网连接,则直接转到“未连接”。有人可以解释吗?
答案 0 :(得分:0)
您看到的是预期的行为。
.info/connected
标志确定应用程序/客户端是否已连接到Firebase数据库后端。虽然这当然需要您具有Internet连接,但除此之外还不止如此。因此,即使您的互联网连接正常,.info/connected
仍可能是false
。
启动应用程序时尤其如此。从应用程序启动到Firebase客户端连接到其数据库服务器之前,需要花费一些时间,因此通常.info/connected
的值以false
开头,然后变为true
。有时,它甚至会在稳定之前切换几次。
另请参阅: