2017-02-01 318 views
0

没有断开我希望能够从火力地堡意外尽快进行选择的用户断开连接(也许是因为互联网连接的,手机没电等)。我相信我遇到了这样做的功能,但我找不到它。先谢谢你。火力地堡发现如果用户从火力地堡

+0

我不知道,你可以在火力地堡进行选择,所以我asume你想这样做就迅速尽管我不明白它是如何更多钞票,如果手机处于关闭状态。所以要清楚:你想在代码上执行选择器,或者你想触发一些关于firebase的操作? – i6x86

回答

0
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") 
      } 
     }) 
0

你需要的是处理连接错误的方式,这是一个非常具体取决于您的应用程序的架构,但我会告诉我如何在一个应用程序,仍然在生产做到了。

所以,如果你在谷歌搜索如何做到这一点,你会发现,你可以使用可达性,似乎有一些解决方案与Alamofire过,但我用这个最简单的方法。我写的运行类似于此代码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() 
    } 

} 

在那里,每次我需要检查,如果仍然有活动的连接我用它的时间。 此外,我发现这里的解决方案:https://stackoverflow.com/a/41271535/5843195

编辑:就个人而言,我认为这是更好地检查是否有一个连接所有,而不是是否有与数据库的连接。