2016-03-24 18 views
0

Firebaseのクエリを使用して、どの範囲の子供(例えば、2番目の子供から5番目の子供まで)を取得できますか?私はのようなものを試してみた:Firebase/AngularFire - 子供の範囲を取得する

new Firebase(config.fb + '/content/posts').startAt(null, 1).endAt(null, 5) 
and 
new Firebase(config.fb + '/content/posts').startAt(1).endAt(5) 

ここでは2例 'ポストは' です:

{ 
    -KDa3Ml3gMcljX6ojEs3: { 
     title: 'Example post 3', 
     body: 'This is a test' 
    }, 
    -KDa3NLvBpLzXMC0npI_: { 
     title: 'Example post 3', 
     body: 'This is a test' 
    } 
} 
+0

「1」と「5」はここで何を意味しますか?キー、優先順位、または特定のプロパティの価値ですか? –

+0

私は、最初のキー(1)から最後のキー(5)までの一連の投稿を取得しようとしています。 '投稿'はプッシュされているので一意のIDで注文されます。それが意味をなさないならば。 –

+0

私は回答を試みましたが、現時点ではそれほど明確ではありません。 JSONのスニペットを(テキストとして、スクリーンショットなしで)追加し、そのスニペットに対して試した正確なコードを追加します。 –

答えて

2

これは動作するはずです:

また
var posts = new Firebase(config.fb + '/content/posts').orderByKey().startAt(1).endAt(5); 
$scope.posts = $firebaseArray(posts); 

、あなたのようなものでそれらを印刷することができます。

var posts = new Firebase(config.fb + '/content/posts').orderByKey().startAt(1).endAt(5); 
posts.on('value', function(snapshot) { 
    snapshot.forEach(function(child) { 
    console.log(child.val()); 
    }); 
}); 

n個の追加情報は、あなたが)提供:

Firebaseがオンに照会することができます:

  • 項目のキーを項目の
  • 値項目の子プロパティの

あなたがしようとしているように見えるアイテムのインデックスを照会することはできません。それを行うための唯一の方法は、に次のようになります。

  • 使用アイテムのキーとしてそのインデックス
  • 項目の子プロパティの値としてインデックスを追加

あなたがしようとした場合Firebaseがこれをサポートしていない理由に遭遇します。大規模なマルチユーザアプリケーションのために、こうしたインデックスベースの操作を拡張することは非常に困難です。トピックの幅広い説明については、arrays in Firebaseを参照してください。

+0

私はangular.jsを取得しています:13294エラー:クエリ:キーで注文するとき、startAt()、endAt()、またはequalTo()に渡される引数は文字列でなければなりません。 –

+0

注:キーは「プッシュ」されています –

+0

データのスクリーンショットを追加しました –

関連する問題