2017-03-06 3 views
0

In meiner Datenbank haben einen Abschnitt 10000 Datensätze. Ich möchte nur Abfrage ich spezifischen Index wie der 56. ... 96. Kann ich einen Weg haben, das zu tun?iOS Firebase Datenbank Abfrage Daten in bestimmten Index

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

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

Wie, dass ich gerade die letzten 40 Datensätze

Antwort

1

Jedes Mal, wenn Sie queryLimited auf einem Standort oder eine Abfrage aufrufe, es gibt eine neue Abfrage. So müssen Sie sicherstellen, dass Sie auf diese neue Abfrage eine Referenz halten:

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

Oder einfach:

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

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

Aber wie kann ich einen bestimmten Index abfragen? Nicht der letzte oder der erste. –

+0

Sie können nicht auf Elemente nach Index zugreifen. Es widerspricht der Echtzeit-Natur von Firebase. Sie können 'queryStartingAtValue()' jedoch verwenden, um an einem bestimmten Ankerpunkt zu starten (normalerweise das letzte Element auf der vorherigen Seite). Siehe meine Antwort hier für mehr darüber (und ein Code-Snippet): http://stackoverflow.com/questions/27691254/firebase-query-with-limit-offset-possible-solutions/27691931#27691931 –

+0

Vielen Dank für alles. –

Verwandte Themen