2017-03-06 1 views
0

私のデータベースでは、1つのセクションには10000以上のレコードがあります。私はちょうど56番目と96番目のような特定のインデックスをクエリしたい。それをする方法がありますか?特定のインデックスのiOS firebaseデータベースクエリデータ

let ref: FIRDatabaseReference = FIRDatabase.database().reference() 

    let q = (ref.child("WORLDS").queryOrdered(byChild: "publishTime")) 
    q.queryLimited(toLast: 40) 
q.observe(.value, with: { (snap) in ... 

私はちょうど

答えて

1

あなたが場所またはクエリにqueryLimitedを呼び出すたびに、最後の40件のレコードを持って、それが新しいクエリを返すことのように。

let ref: FIRDatabaseReference = FIRDatabase.database().reference() 

let query = (ref.child("WORLDS").queryOrdered(byChild: "publishTime")).queryLimited(toLast: 40) 
query.observe(.value, with: { (snap) in ... 
+0

しかし、どのように、私は特定のインデックスを照会することができます

let ref: FIRDatabaseReference = FIRDatabase.database().reference() let q = (ref.child("WORLDS").queryOrdered(byChild: "publishTime")) let q2 = q.queryLimited(toLast: 40) q2.observe(.value, with: { (snap) in ... 

それとも:だからあなたはあなたがその新しいクエリへの参照を保持することを確認する必要がありますか?最後または最初ではありません。 –

+0

インデックスでアイテムにアクセスすることはできません。 Firebaseのリアルタイム性に逆らっています。しかし、 'queryStartingAtValue()'を使って特定のアンカーポイント(通常は前のページの最後のアイテム)から開始することができます。それについての詳細は、私の答え(コードスニペット)をご覧ください:http://stackoverflow.com/questions/27691254/firebase-query-with-limit-offset-possible-solutions/27691931#27691931 –

+0

ありがとうございました。 –

関連する問題