Unity - База данных Firebase в реальном времени - Получи мое звание в таблице лидеров - PullRequest
0 голосов
/ 24 октября 2018

У меня есть мини-игра с таблицей лидеров, использующая базу данных Firebase в реальном времени.

После того, как я получил список оценок пользователей из Firebase, я хотел бы получить оценку текущего пользователя, который был внесписок.

Легко получить оценку текущего пользователя, но как узнать рейтинг в списке, который был OrderByChild ("оценка").

Это код для получения списка лидеров.

List<UserScore> leaderBoard = new List<UserScore>();
FirebaseDatabase.DefaultInstance
                .GetReference("user-scores")
                .OrderByChild("score")
                .LimitToLast(10)
                .GetValueAsync()
                .ContinueWith(task =>
        {
            if (task.IsFaulted)
            {
                Debug.Log("Fail To Load");
            }
            else if (task.IsCompleted)
            {
                DataSnapshot snapshot = task.Result;
                foreach (DataSnapshot h in snapshot.Children)
                {
                    UserScore userScore = new UserScore(h.Child("uid").Value.ToString(), h.Child("name").Value.ToString(), h.Child("photo").Value.ToString(),int.Parse(h.Child("score").Value.ToString()));
                    leaderBoard.Add(userScore);
                }
            }
        });

1 Ответ

0 голосов
/ 24 октября 2018

как узнать мой ранг

Это немного зависит от того, кто "мой".Но скажем, у вас есть UID текущего пользователя в переменной uid.Затем вы можете определить их рейтинг в этой топ-10 с помощью:

int rank = 0;
foreach (DataSnapshot h in snapshot.Children)
{
    rank = rank + 1;
    UserScore userScore = new UserScore(
      h.Child("uid").Value.ToString(), 
      h.Child("name").Value.ToString(), 
      h.Child("photo").Value.ToString(),
      int.Parse(h.Child("score").Value.ToString()));
    leaderBoard.Add(userScore);
    if (h.Child("uid").Value.ToString() == uid) {
      Debug.Log("I'm number "+rank+" in the rankings");
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...