如何处理互联网连接状态Firebase

时间:2017-07-24 22:43:51

标签: 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: { snapshot in
            completionHandler((snapshot.value as? Bool)!)
       })
}

这种方法很完美。我在使用实时数据库做某事的每种方法中都这样使用它:

isConnected { (connected) in
    if(connected){
         //do your things
    } else {
       print("network error")
    }                       
}

但现在我的问题是,如果你收到网络错误怎么办?您如何知道您的设备是否没有互联网连接或Firebase服务是否已关闭?这样做的好方法是什么?因为我现在唯一知道的是我无法访问实时数据库。

所以我的问题是,如何获得更详细的信息?设备离线?火力基地下降了吗?等等。

1 个答案:

答案 0 :(得分:1)

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

要确定后者,请尝试[此列表]中的众多答案之一。包括How to check for an active Internet connection on iOS or OSX?Easiest way to detect Internet connection on iOS?Check for internet connection with Swift