Я использую базу данных 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);
}
}
});
результат кода выше
он действительно очень хорошо печатает весь рейтинг, когда я не звонил ниже кода
Debug.Log((int)item.Child(cashierChild).Value);
без кода
Так что я думаю, что это из-за приведения типа вроде (string) или (int)