"usersPost": {
"post4543": {
"userID": "X12",
"text": "Hi"
},
"post4544": {
"userID": "X12",
"text": "HELLO"
},
"post454S4": {
"userID": "X143",
"text": "....."
}
}
EqualTo 我只想檢索某個用戶的帖子,比如說“userID”:“X12”
EndAt,LimitToLast 沒有必要下載所有快照(我有 100 萬個帖子),所以我將下載限制為 5 個結果。并從上次保存的密鑰開始
因此我的代碼是
OrderByChild("userID").EndAt(lastSavedKey).EqualTo("X12").LimitToLast(5);
//lastSavedKey is the post key "post4544"
這適用于 Windows,但不適用于 Android,正如我收到的:
錯誤 firebase Query::EqualTo:無法將 equalTo() 與 endAt() 結合使用
我閱讀了一些關于組合多個查詢的問題的帖子。但是我的情況的替代解決方案是什么?為什么它在 Windows 上作業?在 Windows 上沒有錯誤!它完美運行,并且 EndAt 最后保存的密鑰。(我使用 Unity 編輯器)
uj5u.com熱心網友回復:
要實作分頁,您需要記住節點開始/結束的兩個值:
- 它的鑰匙
- 您排序的財產的價值
如果您只想回傳userID等于 的節點X12,并以 key 結束lastSavedKey,您可以這樣做:
OrderByChild("userID").StartAt("X12").EndAt("X12", lastSavedKey).LimitToLast(5);
我在這里說的是可能,因為我從未嘗試過將 startAt 和 endAt 與鍵結合使用。如果這不起作用,請洗掉該StartAt子句 -userID在這種情況下,您可能只是洗掉了應用程式代碼中不同的一些節點。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/349717.html
標籤:C# 火力基地 统一3d Firebase 实时数据库
