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

标签 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 服务已关闭?这样做的好方法是什么?因为我现在唯一知道的是我无法访问实时数据库。

所以我的问题是,如何获得更详细的信息?设备是否离线? Firebase 关闭了吗?等等等等

最佳答案

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 .

关于ios - 如何处理互联网连接状态 Firebase,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45291215/

相关文章:

ios - 什么是操作系统状态?

ios - 如何将自定义 HTTP header 字段添加到 HLS 的 AVPlayer 请求

c++ - 使用 Xcode 的 g++ 创建动态分配的数组

ios - 快速获取collectionView中心单元格的indexPath?

ios - 动态改变API数据获取结构

swift - 如何在 Swift 中从 UIImagePickerController 获取编辑后的图像?

sql - 在google cloud firestore中执行JOIN查询

android - 错误 : could not find com. google.gms :google-services:4. 2.0

ios - UIImageView 没有在 iPhone 中以正确的方向呈现图像

firebase - Nodejs : firebase. auth().signInWithCustomToken(token) 生成 "Object has no method ' signInWithCustomToken'”错误