我的數據結構如下:分頁中具有相同的孩子火力值
users:
user1:
-carModel: evo x
-username: importguy
-region: north east
user2:
-carModel: evo x
-username: evoguy
-region: north east
user3:
-carModel: mustang gt
-username: muscleguy
-region: south east
我希望用戶能夠搜索車,說EVO,以及用戶的顯示結果誰擁有這些特殊汽車。我需要爲我的應用分頁這些結果。問題是我無法弄清楚如何正確地查詢這個。這是我到目前爲止。
func fetchUsersBy(car: String) {
if self.carCurrentKey == nil {
let ref = USER_REF.queryOrdered(byChild: "carModel").queryStarting(atValue: car).queryLimited(toFirst: 3)
ref.observeSingleEvent(of: .value, with: { (snapshot) in
guard let snap = snapshot.children.allObjects as? [FIRDataSnapshot] else { return }
guard let last = snapshot.children.allObjects.last as? FIRDataSnapshot else { return }
snap.forEach({ (snapshot) in
guard let userDict = snapshot.value as? Dictionary<String, AnyObject> else { return }
guard let carModel = userDict["carModel"] as? String else { return }
if carModel.contains(car) {
print(snapshot)
}
})
self.carCurrentKey = last.key
self.carCurrentValue = last.childSnapshot(forPath: "carModel").value as? String
})
} else {
// where to start next query?
let ref = USER_REF.queryOrder(byChild: "carModel").queryStarting(atValue: self.carCurrentValue)
}
}
我必須通過carModel命令查詢,以便將具有該特定車型的所有用戶分組到一個快照中。由於所有的車型都是相同的價值,我無法弄清楚分頁的下一個查詢開始或結束的位置。使用我在else塊中的引用在與上述塊相同的位置開始查詢。任何幫助或建議將不勝感激。
我認爲是做了一個扇子,併爲汽車類型製作了一個單獨的結構。這將是困難的,但。
看起來像它的工作原理,但無論如何,你可以在swift中發佈解決方案嗎? – Dirty
答案是在您的startAt()調用中使用childKey。剩下的只是獎金,可以幫助您瞭解下一步將要走向何方。 – Kato
謝謝!答案接受! – Dirty