繁体   English   中英

如何在 Firebase Database Unity/C# 中获得前 5 名的最高分?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM