[英]How to get top 5 highest score in Firebase Database Unity/C#?
我想检索 firebase 数据库中的前 5 个最高点。 我是 firebase 的新手,我正在将它与 Unity 一起使用。 这是我的 Firebase 数据库的结构。
users{
user1:{
email: 'user1@email.com',
points: '5'
},
user2:{
email: 'user2@email.com',
points: '3'
},
....
}
我对 Firebase 没有太多经验,但是,我可以建议您使用OrderByValue()
和LimitToFirst()
方法您可以在 Firebase 实时数据库中找到有关排序和过滤数据的更多信息: 链接到 firebase 文档
嗨,以防万一像我这样的人遇到这个问题。
using System.Linq;
public static void Initialize()
{
database.GetReference(LEADERBOARDS).OrderByChild("score")
.LimitToLast(100).ValueChanged += HandleValueChanged;
}
static void HandleValueChanged(object sender, ValueChangedEventArgs args)
{
if (args.DatabaseError != null)
{
Debug.LogError(args.DatabaseError.Message);
return;
}
IEnumerable<DataSnapshot> snapshots = new List<DataSnapshot>(args.Snapshot.Children).Reverse<DataSnapshot>();
foreach(var child in snapshots)
{
var json = child.GetRawJsonValue();
HighScore hs = JsonUtility.FromJson<HighScore>(json);
Debug.Log(hs.displayName + "_" + hs.score);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.