Ios Firebase查明用户是否断开了与Firebase的连接

Ios Firebase查明用户是否断开了与Firebase的连接,ios,swift,firebase,firebase-realtime-database,Ios,Swift,Firebase,Firebase Realtime Database,我希望在用户意外断开与Firebase的连接时(可能是由于互联网连接、电池耗尽等原因),能够立即执行选择器。我相信我遇到了一个函数,它就是这样做的,但我找不到它。提前感谢。您需要的是一种处理连接错误的方法,这是一种非常具体的方法,具体取决于您的应用程序的体系结构,但我会告诉您我是如何在仍在生产的应用程序中做到这一点的 所以,如果你在谷歌上搜索如何做到这一点,你会发现你可以使用可达性,似乎阿拉莫菲尔也有一些解决方案,但我用了这个最简单的方法。我编写了一个运行类似以下代码的func: func ch

我希望在用户意外断开与Firebase的连接时(可能是由于互联网连接、电池耗尽等原因),能够立即执行选择器。我相信我遇到了一个函数,它就是这样做的,但我找不到它。提前感谢。

您需要的是一种处理连接错误的方法,这是一种非常具体的方法,具体取决于您的应用程序的体系结构,但我会告诉您我是如何在仍在生产的应用程序中做到这一点的

所以,如果你在谷歌上搜索如何做到这一点,你会发现你可以使用可达性,似乎阿拉莫菲尔也有一些解决方案,但我用了这个最简单的方法。我编写了一个运行类似以下代码的func:

func checkInternet() {
    DispatchQueue.main.async {
        let url = URL(string: "https://www.google.com")!
        let request = URLRequest(url: url)

        let task = URLSession.shared.dataTask(with: request) {data, response, error in

            if error != nil {

                print("Internet Connection not Available!")
                self.haveInternetConnection = false
            }
            else if let httpResponse = response as? HTTPURLResponse {
                if httpResponse.statusCode == 200 {
                print("Internet Connection OK")
                }
                print("statusCode: \(httpResponse.statusCode)")
            }

        }
        task.resume()
    }

}
在那里,每次我需要检查是否仍有活动连接时,我都会使用它。 我还在这里找到了解决方案:


编辑:就个人而言,我认为最好检查是否有连接,而不是数据库是否有连接。

我不确定你是否可以在Firebase上执行选择器,所以我想你想在swift上执行,尽管事实上我不明白如果手机关机怎么可能。所以我要明确一点:您想要对代码执行选择器,还是想要在firebase上触发一些操作?
let connectedRef = FIRDatabase.database().reference(withPath: ".info/connected")
        connectedRef.observe(.value, with: { snapshot in
            if let connected = snapshot.value as? Bool, connected {
                print("Connected")
            } else {
                print("Not connected")
            }
        })