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

时间:2017-11-26 19:11:50

标签: c# firebase unity3d firebase-realtime-database

我想检索firebase数据库中的前5个最高点。我是firebase的新手,我在Unity中使用它。这是我的Firebase数据库的结构。

Balloon

2 个答案:

答案 0 :(得分:0)

我对Firebase的解释不多,但是,我建议您使用方法OrderByValue()LimitToFirst() 您可以在Firebase Realtime DB中找到有关排序和过滤数据的更多信息: link to firebase documentation

答案 1 :(得分:0)

嗨,以防万一像我这样的人遇到这个问题。

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);
    }
}