Я использую следующий код для извлечения данных из базы данных Firebase для пользователя с Unity3D, в нашем случае я получаю Уровень пользователя:
FirebaseDatabase.DefaultInstance
.GetReference("users").Child(userID)
.GetValueAsync().ContinueWith(task =>
{
if (task.IsFaulted)
{
Debug.LogError("Error retriving user data: " + userID);
// Handle the error...
}
else if (task.IsCompleted)
{
DataSnapshot snapshot = task.Result;
int TempUserLevel = (int)snapshot.Child("Level").Value;
//this get's an error
PlayerPrefs.SetInt(_UserLevel, TempUserLevel);
}
}
Ошибка:
TrySetInt может быть вызван только из основного потока.Конструкторы и инициализаторы полей будут выполняться из потока загрузки при загрузке сцены.
Как я понимаю, ЗАДАЧА - это новый поток, а не главный поток Unity.Тем не менее я не могу сохранить значения локально на единицу или получить значение из ЗАДАЧИ.