我正在嘗試按用戶的最高分數對用戶進行排序以創建排行榜,但是,當嘗試按分數對他們進行排序時,我得到的是按字母順序排列的用戶。
這是資料庫結構的影像:資料庫
這是我嘗試獲取用戶的有序串列:
List<User> list = new List<User>();
list = (await firebase.Child("Users").OrderBy("HighScore").LimitToLast(10).OnceAsync<User>()).Select(item => new User
{
Username = item.Object.Username,
Password = item.Object.Password,
HighScore = item.Object.HighScore
}).ToList();
這是查詢 ref/Users/.json?orderBy="HighScore"&limitToLast=10:
{"a":{"HighScore":500,"Password":"a","Username":"a" 的結果},"ac":{"HighScore":0,"Password":"ac","用戶名":"ac"},"b":{"HighScore":1100,"Password":"b","用戶名":"b"}}
這里是資料庫規則:規則
我究竟做錯了什么?
uj5u.com熱心網友回復:
你應該使用orderByChild("HighScore")而不是orderBy("HighScore")
查看檔案以獲取更多資訊 https://firebase.google.com/docs/database/web/lists-of-data#sort_data
uj5u.com熱心網友回復:
事實證明,我的查詢確實回傳了得分最高的 10 個用戶。但是由于某種原因,我的代碼給出的串列是根據用戶名按字母順序排列的,而不是基于分數欄位。所以我所做的是在獲得 10 個最佳用戶串列后對串列進行排序List<User> orderedList = list.OrderByDescending(o => o.HighScore).ToList();
現在它似乎按照我的預期作業。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/459763.html
標籤:C# 安卓 火力基地 xamarin firebase-实时数据库
上一篇:XamariniOS-無法存檔。解壓時缺少dll.msym檔案
下一篇:XamarinFormsAndroid-如何在VisualStudioforMac2019中啟用ProguardShrinker
