Ошибка в Unity Firebase при изменении типа значения в foreach - PullRequest
0 голосов
/ 11 февраля 2019

Я использую базу данных Firebase в реальном времени для системы ранжирования в моей игре.Но каждый раз, когда я пытаюсь изменить тип значения у дочернего элемента Datasnapshot, кажется, что он выходит из foreach

string cashierChild = "score_cashier";

FirebaseDatabase.DefaultInstance.GetReference("users").OrderByChild(cashierChild).LimitToLast(10)
    .GetValueAsync().ContinueWith(task =>
    {
        if (task.IsFaulted)
        {
            Debug.Log("Failed To Load");
        }
        else if (task.IsCompleted)
        {
            int rank = 0;
            DataSnapshot snapshot = task.Result;
            foreach (var item in snapshot.Children)
            {
                rank = rank + 1;
                Debug.Log("Rank: " + rank + ", nickname: " + item.Child("nickname").Value + ", score: " + item.Child(cashierChild).Value);
                Debug.Log((int)item.Child(cashierChild).Value);
            }
        }

    });

результат кода выше

withTheCode

он действительно очень хорошо печатает весь рейтинг, когда я не звонил ниже кода

Debug.Log((int)item.Child(cashierChild).Value);

без кода

Так что я думаю, что это из-за приведения типа вроде (string) или (int)

1 Ответ

0 голосов
/ 11 апреля 2019

Я решил проблему, используя другой способ для приведения типов.(string)Convert.ChangeType(item.Child("nickname").Value, typeof(string));

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...