2017-02-01 11 views
0

Firebaseから予期せず切断された直後に(インターネット接続やバッテリーの消耗などにより)セレクタを実行できるようにしたい。私はそれをした機能を見つけたと思うが、見つけられない。前もって感謝します。FirebaseがFirebaseから切断したかどうかを調べる

+0

は、私はあなたがFirebaseでセレクタを実行できるか分からないので、私はあなたが電話がオフになっている場合、私はそれがかのうであるかを理解することはできませんという事実にもかかわらず、迅速にそれをやりたい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

あなたが必要とするのは接続エラーを処理する方法です。これはアプリのアーキテクチャによって非常に異なりますが、まだ生産中のアプリでどのように行ったかを教えてください。

Googleでこれを行う方法を検索すると、Reachabilityを使用できることがわかります.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

編集:は個人的に、私は、データベースへの接続がありますという場合よりも、全く接続がありますかどうかを確認することをお勧めだと思います。

関連する問題