2016-08-13 11 views
1

特定の値と等しいChildでFirebaseを照会しようとしていますが、特定の投稿キーでスナップショットを開始します。Firebase QueryOrderedByChildとEqualToValueとStartingAtValueの組み合わせ

データ構造:

projectName 
    -posts 
    -postKey1 
     -storeId: 1 
    -postKey2 
     -storeId: 2 
    -postKey3 
     -storeId:3 
    -postKey4 
     -storeId:2 
    -postKey5 
     -storeId:3 
    -postKey6 
     -storeId:2 

例:

私はqueryEqualToValue("2")queryOrderedByChild("storeId")にしようとしていますが、私はそれがその順序で返されたときに「postKey4」で開始したスナップショットをしたいと思います。

私の現在のクエリ:

ref.queryOrderedByChild("storeId").queryEqualToValue("\(myId)").observeEventType(.Value, withBlock: {snapshot in 

私はあなたが以前に呼び出された後queryStartingAtValuequeryEqualToValue:queryEndingAtValueまたはqueryEqualToValueを呼び出すことはできませんことを知っているが、私はqueryEqualToValueが私のstoreIdを取得することが必要です。どんな助けでも大歓迎です!

答えて

4

開始するキーを指定するqueryStartingAtValueに2番目の引数を渡すことができます。

ref.queryOrderedByChild("storeId") 
    .queryStartingAtValue(2, childKey: "postKey4") 
    .queryEndingAtValue(2) 
    .observeEventType(.Value, withBlock: {snapshot in 
     for childSnapshot in snapshot.children { 
      print(childSnapshot.key!! 
     } 
}) 

この版画:

postKey4

postKey6

私はこれは私がqueryStartingAtValueに2つ目の引数を使用する初めてです認めなければならないので、私はそれを理解していない可能性があります完全にまだ。

queryEqualToValueを使用できない理由は、あなたが望むものではない単一のキーだけを返すということです。

関連する問題