检测连接状态两次

时间:2018-07-05 09:29:50

标签: ios swift firebase firebase-realtime-database

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连接时,结果变为“未连接”,然后变为“已连接”。如果他们没有互联网连接,则直接转到“未连接”。有人可以解释吗?

1 个答案:

答案 0 :(得分:0)

您看到的是预期的行为。

.info/connected标志确定应用程序/客户端是否已连接到Firebase数据库后端。虽然这当然需要您具有Internet连接,但除此之外还不止如此。因此,即使您的互联网连接正常,.info/connected仍可能是false

启动应用程序时尤其如此。从应用程序启动到Firebase客户端连接到其数据库服务器之前,需要花费一些时间,因此通常.info/connected的值以false开头,然后变为true。有时,它甚至会在稳定之前切换几次。

另请参阅: