Я пытаюсь получить некоторые данные из базы данных Firebase.Я был в состоянии сделать это хорошо в прошлом, но что-то не так с моим кодом GetValueAsync () ниже.При отладке он застревает в строке «await reference.Database», но я не уверен, что делаю неправильно.При работе без отладки никакая информация никогда не получается.
Я не уверен, что проблема в пути или в функции await / async.Отладка показывает, что loggedUserId хранит значение перед ссылкой на него в следующей строке, но остальная часть функции никогда не завершается и не завершается с ошибкой.Приложение компилируется, но я никогда не смогу захватить какую-либо информацию из снимка.
Формат моей базы данных: «пользователи» -> 78cVqzA8qNTNigsao3VvdnM0Qol2 (что правильно) -> (несколько пар данных, например уровень:1, жизни: 3 и т. Д.)
public static async void GetUserData()
{
FirebaseApp app = FirebaseApp.DefaultInstance;
app.SetEditorDatabaseUrl("https://narwhaltrivia.firebaseio.com/");
if (app.Options.DatabaseUrl != null) app.SetEditorDatabaseUrl(app.Options.DatabaseUrl);
DatabaseReference reference = Firebase.Database.FirebaseDatabase.DefaultInstance.RootReference;
loggedUserId = FirebaseAuth.DefaultInstance.CurrentUser.UserId;
await reference.Database.GetReference("users").Child(loggedUserId).GetValueAsync().ContinueWith(task =>
{
if (task.IsFaulted)
{
Debug.LogError("Error retrieving user data");
return;
}
if (task.IsCompleted)
{
DataSnapshot userSnapshot = task.Result;
loggedEmail = userSnapshot.Child("email").GetRawJsonValue();
loggedCurrentScore = userSnapshot.Child("currentScore").GetRawJsonValue();
loggedLevel = userSnapshot.Child("level").GetRawJsonValue();
loggedLives = userSnapshot.Child("lives").GetRawJsonValue();
loggedRound = userSnapshot.Child("round").GetRawJsonValue();
loggedTotalScore = userSnapshot.Child("totalScore").GetRawJsonValue();
return;
}
});
}