2017-03-06 30 views
0

在我的數據庫中,一個部分有10000條記錄。我只是想要查詢我特定的索引,比如56th ... 96th。我可以有辦法做到這一點嗎?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 ... 

就像我剛剛拿到了最後40條記錄

回答

1

每次調用queryLimited上的某個位置或查詢時,會返回一個新的查詢。所以,你需要確保你保持一個參考到新的查詢:

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 ... 

或者只是:

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

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

但我怎麼可以查詢特定的指數?不是最後一個或第一個。 –

+0

您無法按索引訪問項目。它違背了Firebase的實時性。但是您可以使用'queryStartingAtValue()'從特定的錨點(通常是上一頁的最後一個項目)開始。在這裏看到我的答案更多關於(和代碼片段):http://stackoverflow.com/questions/27691254/firebase-query-with-limit-offset-possible-solutions/27691931#27691931 –

+0

謝謝你的一切。 –