如果它是一個字串,是否可以在子值之后查詢?按字母順序?不管是下降還是上升。例如,在鍵下,每個參考都有指定的關注者名稱,我想按字母順序對所有關注者進行排序。不幸的是,只能設法查詢它按整數排序。(包括分頁)
如果這不起作用,有沒有辦法按鍵查詢?例如,我有鍵 1“-edasMmaed”和鍵 2“-deLkdnw”等,如果我在最后一個值之后開始分頁?不幸的是,我沒有發現任何有用的東西。
親切的問候
編輯:這是問題的第一部分


編輯2:
var query = Ref().databaseFollowingForUser(uid: userId, type: type).queryOrderedByKey()
if let latestUserFollowers = uid, latestUserFollowers != 0 {
query = query.queryEnding(atValue: latestUserFollowers).queryLimited(toLast: limit)
} else {
query = query.queryLimited(toLast: limit)
}
query.observeSingleEvent(of: .value, with: { (snapshot) in
使用此代碼,我收到 ID: 276 到 ID: 18 的前 10 個結果(限制定義為 10)。(從 holgerhagerson 開始,到 manni85 結束)
現在我想分頁并加載更多我還無法加載的內容。
傳入的 uid 是最新獲取的用戶的 uid,即“18”,manni85
大編輯:我設法通過鑰匙訂購了它。閱讀你關于鍵的答案總是保存為字串,我意識到我的錯誤,現在能夠正確地做到這一點。
非常感謝!
uj5u.com熱心網友回復:
Firebase 實時資料庫中的鍵以字串形式存盤(和排序)。即使它們看起來像數字,Firebase 也會將它們存盤(和排序)為字串。
這意味著2,3,4,等你的截圖實際上"2","3","4"等這會影響它們的排序方式,如字串是字典順序,并依次這些按鍵會顯示為"3","30","4","44","5",等。
如果要使用可以按數字排序的鍵,請執行以下步驟:
- 使用短的非數字前綴為鍵添加前綴,以防止 Firebase 將它們解釋為陣列。
- 對所有鍵中的數字使用固定長度,根據需要在值前加上零或空格。
組合后,您的密鑰將顯示為:
"key_003": ...,
"key_004": ...,
...
"key_008": ...,
"key_016": ...,
"key_018": ...,
"key_030": ...,
"key_044": ...
您現在可以在/FOLLOW/Follower/2通過呼叫queryOrderedByKey().
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/373022.html
