Firebase -can Database.database().reference(withPath: ".info/connected") 替代 Ashley Mills Reachability

Firebase -can Database.database().reference(withPath: ".info/connected") substitute for Ashley Mills Reachability

我的情况是插入了带 wifi 的路由器,但路由器没有连接到互联网(没有 wifi)。无论是什么可达性class我当时使用的都认为它已连接,因为wifi可用但无法确定wifi本身无法连接。

我现在使用 Ashley Mills Reachability,它工作正常,因为它可以通过 ping 主机名来判断我是否连接到互联网。

let reachability = Reachability(hostname: "www.google.com")

reachability.whenReachable = { (reachability) in

    // connection is fine remove no connection alert if it's on screen
}
reachability.whenUnreachable = { (reachability) in

    // can't ping Google so alert no connection
}

Firebase 具有类似的功能:

let connectedRef = Database.database().reference(withPath: ".info/connected")
connectedRef.observe(.value, with: { (connected) in

    if let boolean = connected.value as? Bool, boolean == true {

          // connection is fine remove no connection alert if it's on screen
     else {

          // can't ping Firebase so alert no connection
     }
})

问题是上面的 Firebase 功能是否可以像 AshleyMills 那样判断我的 wifi 是否打开(路由器已插入)但 wifi 本身没有连接到互联网(没有 wifi)?

聚会真的晚了,但我可以确认 Firebase 功能确实可以正常工作。它检查与 Firebase 数据库的连接。因此,如果您的 wifi 已打开但没有互联网,那么 Firebase 会说没有互联网。

非常简单。您正在测试与 Firebase 的连接。如果它无法连接到 Firebase,那么是否有 wifi 或手机数据或其他任何东西都没有关系。打不通就打不通,它会告诉你没有连接。

希望对以后的人有所帮助。哦,我已经在我的生产应用程序中使用这段代码一年多了。