2016-12-08 21 views
2

どのようにfirebaseでクエリを作成できますか? OracleのSQLに関する問い合わせは、私はあなたがqueryOrderedByChildqueryStartingAtValueを使用する必要がクエリ&Firebase(swift 3)

enter image description here

+0

あなたfirebaseデータベースの構造を示します。 –

答えて

3

スウィフト3、Firebaseで同じことを行う必要があり

"select * from users where username = "SomeUser" 

だろう。これはあなたが正しい方向にスタートさせるはずです。

let username = "SomeUser" 

FIRDatabase.database().reference.child("users").queryOrderedByChild("username").queryStartingAtValue(username).queryEndingAtValue(username).observeEventType(.ChildAdded, withBlock: { (snapshot) -> Void in 

} 
+1

'.queryStartingAtValue(username)'と '.queryEndingAtValue(username)'の両方が必要なのはなぜですか?特定の値のすべての結果を検索する簡単な方法はありますか?いくつかの 'queryEqual(toValue:Any?)'関数があります。 – MarksCode

2

スウィフト3 & & Firebase 3

私は、これはあなたが理解するのに役立ちます願っています。 Example

そしてここでは、コードは次のとおりです:ここでは、これは、データ構造の一例である

を行く

let username = "DavidMouse" 

    // create searchRef or queryRef you name it 
    let searchRef = FIRDatabase.database().reference().child("users").queryOrdered(byChild: "username").queryEqual(toValue: username) 

    // search the username 
    searchRef.observeSingleEvent(of: .value, with: { (snapshot) in 

     guard snapshot.value is NSNull else { 

      // yes we got the user 
      let user = snapshot.value as! String 
      print("\(user) is exists") 
      return 
     } 

     // no there is no user with desire username 
     print("\(username) is exists") 
    }) { (error) in 
     print("Failed to get snapshot", error.localizedDescription) 
    } 
+0

この場合、queryOrderedByChild呼び出しでネストされた子への相対パスを指定することで、リスト要素を 'users'キーの下にネストされた値で順序付けることができます。 – bibscy

関連する問題