2017-01-15 8 views
3

Swift 3を使用してFirebaseデータベースとのインターネット接続を検出する手助けがありますか?私はこの機能を使ってデータベースからデータをダウンロードしています。あなたのアプリがFirebaseデータベースバックエンドへの接続を持っているかどうかを検出したい場合はSwift3を使用してFirebaseデータベースとのインターネット接続を検出する方法は?

func loadData(){ 


    Ref=FIRDatabase.database().reference() 

    Handle = Ref?.child("Posts").queryOrdered(byChild: "Des").queryEqual(toValue: "11").observe(.childAdded ,with: { (snapshot) in 

     if let post = snapshot.value as? [String : AnyObject] { 

      let img = Posts() 

      img.setValuesForKeys(post) 

      self.myarray.append(img) 

       self.tableView.reloadData() 

     }else { 


     } 

    }) 

} 

答えて

11

、あなたは/.info/connectedのために聞くことができます。 Firebase documentation on detecting connection stateからこの例では、トリックを行う必要があります。

let connectedRef = FIRDatabase.database().referenceWithPath(".info/connected") 
connectedRef.observeEventType(.Value, withBlock: { snapshot in 
    if let connected = snapshot.value as? Bool where connected { 
     print("Connected") 
    } else { 
     print("Not connected") 
    } 
}) 

スウィフト3.1

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

のObjective Cを

FIRDatabaseReference *connectedRef = [[FIRDatabase database] referenceWithPath:@".info/connected"]; 
    [connectedRef observeEventType:FIRDataEventTypeValue withBlock:^(FIRDataSnapshot *snapshot) { 
    if([snapshot.value boolValue]) { 
    NSLog(@"connected"); 
    } else { 
    NSLog(@"not connected"); 
    } 
}]; 
+0

アプリが起動された場合、これは動作していないようインターネット接続はありません。 – Raphael

+0

何が問題なのですか? –

+1

アプリがインターネットに接続されていないと、応答ブロックが実行されないようです。私が使用しているfirebaseのバージョンの問題かもしれません。 – Raphael

関連する問題