Firebase -can Database.database()。reference(withPath:“ .info / connected”)替代Ashley Mills可达性

时间:2019-05-22 20:07:10

标签: ios swift firebase reachability

我处于一种情况,其中插入了带有wifi的路由器,但路由器未连接到互联网(没有wifi)。当时我使用的任何可达性类都认为它已连接,因为可以使用wifi,但它无法确定wifi本身无法获得连接。

我现在使用Ashley Mills Reachability,它可以正常工作,因为它可以通过ping主机名来告诉我是否已连接到Internet。

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功能能否判断我的wifi是否打开(已插入路由器),但wifi本身却没有像AshleyMills一样连接到互联网(没有wifi)?

1 个答案:

答案 0 :(得分:0)

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

非常简单。您正在测试与Firebase的连接。如果无法到达Firebase,则没有wifi或手机数据或其他任何信息都没关系。如果无法达到,就无法达到,它会告诉您没有连接。

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