Ios 如何处理Firebase的internet连接状态

Ios 如何处理Firebase的internet连接状态,ios,swift,firebase,firebase-realtime-database,Ios,Swift,Firebase,Firebase Realtime Database,我想检查设备(本例中为IOS设备)是否可以访问Firebase实时数据库 所以我创建了这个方法: private func isConnected(completionHandler : @escaping (Bool) -> ()) { let connectedRef = Database.database().reference(withPath: ".info/connected") connectedRef.observe(.value, with: { sn

我想检查设备(本例中为IOS设备)是否可以访问Firebase实时数据库

所以我创建了这个方法:

private func isConnected(completionHandler : @escaping (Bool) -> ()) {
   let connectedRef = Database.database().reference(withPath: ".info/connected")
       connectedRef.observe(.value, with: { snapshot in
            completionHandler((snapshot.value as? Bool)!)
       })
}
这种方法非常有效。我在使用实时数据库的每种方法中都这样使用它:

isConnected { (connected) in
    if(connected){
         //do your things
    } else {
       print("network error")
    }                       
}
但是现在我的问题是,如果出现网络错误怎么办。您如何知道您的设备是否没有internet连接或Firebase服务已关闭?做这件事的好方法是什么?因为我现在唯一知道的是我无法访问实时数据库


所以我的问题是,我怎样才能得到更详细的信息?设备是否脱机?firebase关闭了吗?等等。

Firebase的
.info/connected
仅指示您的应用程序是否连接到其Firebase数据库后端。它不检测一般网络连接


要确定后者,请尝试[此列表]中的一个答案。包括和。

使用可达性。对于Android客户端,连接仅在需要时存在。解释:在Android上,Firebase自动管理连接状态以减少带宽和电池使用。当客户端没有活动侦听器,没有挂起的写入或onDisconnect操作,并且没有通过goOffline方法显式断开连接时,Firebase会在60秒不活动后关闭连接。我没有使用iOS的经验,但我希望它是一样的…因此当
.info/connected
返回false时,is可能表示无法连接,或者a可能表示不需要连接。