Здравствуйте, ребята, я новичок в Firebase и пытаюсь разработать простую визуализацию данных гистограммы, которая связана с базой данных Firebase в реальном времени.Я пытаюсь прочитать / получить данные из firebase после аутентификации.Во-первых, когда я пытался извлечь данные из firebase без аутентификации, он отлично работает в моем редакторе Unity.Но когда я настраиваю аутентификацию, он не может прочитать метод «HandleValueChanged», который предназначен для чтения / извлечения данных из firebase.HandleValueChanged - это метод, вызываемый из "FirebaseDatabase.DefaultInstance.GetReference (" Node1 "). ValueChanged + = HandleValueChanged".Как я могу решить эту проблему или есть какие-либо другие способы получения данных из firebase после auth.SignInWithEmailAndPasswordAsync (электронная почта, пароль) ... и т. Д.?
Мои правила безопасности
{
"rules": {
".read": "auth != null",
".write": "auth != null"
}
}
Это мой метод запуска ()
public void Start()
{
Firebase.FirebaseApp.DefaultInstance.SetEditorP12FileName("xxxxxxxxxxx.p12");
Firebase.FirebaseApp.DefaultInstance.SetEditorServiceAccountEmail("xxxxxxxxxxxxxxxxxx.iam.gserviceaccount.com");
Firebase.FirebaseApp.DefaultInstance.SetEditorP12Password("notasecret");
Firebase.DependencyStatus dependencyStatus = Firebase.DependencyStatus.UnavailableOther;
Firebase.FirebaseApp.CheckAndFixDependenciesAsync().ContinueWith(task => {
dependencyStatus = Firebase.FirebaseApp.CheckDependencies();
//dependencyStatus = task.Result;
if (dependencyStatus == Firebase.DependencyStatus.Available)
{
Debug.Log("Successfully It will now Initialize Firebase " + dependencyStatus);
InitializeFirebase();
}
else
{
Debug.LogError(
"Could not resolve all Firebase dependencies: {0}" + dependencyStatus);
}
});
}
После проверки состояния зависимости теперь он инициализирует базу данных огня.Вот мой метод InitializeFirebase ():
public void InitializeFirebase()
{
Firebase.FirebaseApp app = FirebaseApp.DefaultInstance;
app.SetEditorDatabaseUrl("https:xxxxxxxxxxxxxxxxxxxxxx.com");
if (app.Options.DatabaseUrl != null)
{
app.SetEditorDatabaseUrl(app.Options.DatabaseUrl);
}
auth = Firebase.Auth.FirebaseAuth.DefaultInstance;
auth.SignInWithEmailAndPasswordAsync("email@mail.com", "password").ContinueWith(task =>
{
if (task.IsCanceled)
{
Debug.LogError("SignInWithEmailAndPasswordAsync was canceled.");
return;
}
if (task.IsFaulted)
{
Debug.LogError("SignInWithEmailAndPasswordAsync encountered an error: " + task.Exception);
return;
}
Firebase.Auth.FirebaseUser newUser = task.Result;
Debug.LogFormat("User signed in Successfully: {0} ({1})", newUser.DisplayName, newUser.UserId);
GetData();
});
}
И теперь, когда он достигает метода GetData, я пишу Debug.Log для отслеживания процесса и определения, входит ли он в этот метод после GetReference.
public void GetData()
{
FirebaseDatabase.DefaultInstance.GetReference("Node1").ValueChanged += HandleValueChanged;
Debug.Log("1");
}
Теперь в результате Debug.Log ("1") отображается на консоли Unity, но Debug.Log ("2") внутри метода "HandleValueChanged" не отображается.Это та часть, где он теперь извлекает данные из базы данных Firebase в реальном времени, но при запуске редактора Unity ничего не выводится.
public void HandleValueChanged(object sender, ValueChangedEventArgs args)
{
Debug.Log("2");
if (args.DatabaseError != null)
{
Debug.LogError(args.DatabaseError.Message);
return;
}
Debug.Log(args.Snapshot.Child("Node2").Value);
NumOfOrdersFriedChicken = args.Snapshot.Child("NumberOfOrders").Value.ToString();
NumOfOrdersLemonGrass = args.Snapshot.Child("NumberOfOrdersLemonGrass").Value.ToString();
NumOfOrderFriedChickenInt = Int32.Parse(NumOfOrdersFriedChicken);
NumOfOrderLemonGrassInt = Int32.Parse(NumOfOrdersLemonGrass);
chart.DataSource.SetValue("Category 1", "Group 1", NumOfOrderFriedChickenInt);
chart.DataSource.SetValue("Category 2", "Group 1", NumOfOrderLemonGrassInt);
//chart.DataSource.SlideValue("Category 2", "Group 1", NumOfOrderLemonGrassInt, 4f);
}
Я ожидаю только вывод трехмерной гистограммы для визуализации данных, котораяподключен к базе огня.Как я могу получить свои данные после аутентификации?