2017-09-09 6 views
2

私は現在のFirebaseデータベース構造を持っています。 Firebase Database StructureFirebase queryEqualToValue

すべての真偽値を照会したいと思います。

現在のコードは次のとおりです。

let resultsRef = Database.database().reference().child("user_results").child(userID) 
    let query = resultsRef.queryOrderedByKey().queryEqual(toValue: "false") 
     query.observeSingleEvent(of: .value, with: { (snapshot) in 

ユーザーIDは "MyRQOZ ..." であるスナップショットをプリントアウト

は私に何も与えません。しかし、私が行う場合

.queryLimited(toFirst: 1) 

私は望むスナップショットを取得します。

["yhgeZLXJhuXKmbnK1eRwkC4xmO84": false] 

私は私のリファレンスを信じていると思っています。しかし、私はどんなIDになるのか分からない。

答えて

0

あなただけのオリジナルの下で、このIfステートメントを追加します

query.observe(.childAdded, with: { (snapshot) in 

を試してみて、if文の値

(編集)をキャッチするために追加

observeSingleEvent 

最初のイベントを照会していますあなたが既に持っているコードは、次のようになります:

let resultsRef = Database.database().reference().child("user_results").child(userID) 
let query = resultsRef.queryOrderedByKey().queryEqual(toValue: "false") 
    query.observeSingleEvent(of: .value, with: { (snapshot) in 
     if let trueOrFalse = snapshot.value as? [String: AnyObject] { 
       for (ke, value) in trueOrFalse { 
        if value as! String == "false" { 
         // 'ke' is now all of the keys where the value so you could do something like... 
         print(ke) //and it will give you the keys that have false as the value. 
+0

私はクエリを.queryLimited(toFirst:1)に変更して、スナップショットの内容を確認しました。私が望むのは、それらの隣で値がfalseのすべてのキーを取得することです。 –

+0

私は自分の答えを編集しました。 –

関連する問題