Reputation: 91
Does anyone know how to return a value of a get to a Firebase Database after it is completed? I want for example to return the string "extracted.pl_superhit" to another class and it's an async process...
public void LoadData_element(string player)
{
FirebaseApp.DefaultInstance.SetEditorDatabaseUrl(DATA_URL);
FirebaseDatabase.DefaultInstance.GetReferenceFromUrl(DATA_URL).GetValueAsync()
.ContinueWith((task =>
{
if (task.IsFaulted)
{
print("Falhou o Load dos dados");
}
if (task.IsCanceled)
{
print("Cancelou o load dos dados");
}
if (task.IsCompleted)
{
DataSnapshot datasnap = task.Result;
string pData = datasnap.GetRawJsonValue();
var humidval = datasnap.Child(player).GetRawJsonValue();
string test = humidval.ToString();
print("x:" + test);
Firebase_Database_Player extracted = JsonUtility.FromJson<Firebase_Database_Player>(test);
print("Player_name:" + extracted.pl_name);
print("Player_lfbar:" + extracted.pl_lfbar);
print("Player_hit:" + extracted.pl_hit);
print("Player_superhit:" + extracted.pl_superhit);
print("Player_defend:" + extracted.pl_defend);
print("Player_atuallife:" + extracted.pl_atuallife);
print("Player_atualattack:" + extracted.pl_atualattack);
}
}));
}
thanks
Upvotes: 1
Views: 232
Reputation: 247443
Make the function async and await the necessary calls
public async Task<string> LoadData_element(string player) {
FirebaseApp.DefaultInstance.SetEditorDatabaseUrl(DATA_URL);
var reference = FirebaseDatabase.DefaultInstance.GetReferenceFromUrl(DATA_URL);
DataSnapshot datasnap = await reference.GetValueAsync()
string pData = datasnap.GetRawJsonValue();
var humidval = datasnap.Child(player).GetRawJsonValue();
string test = humidval.ToString();
print("x:" + test);
Firebase_Database_Player extracted = JsonUtility.FromJson<Firebase_Database_Player>(test);
print("Player_name:" + extracted.pl_name);
print("Player_lfbar:" + extracted.pl_lfbar);
print("Player_hit:" + extracted.pl_hit);
print("Player_superhit:" + extracted.pl_superhit);
print("Player_defend:" + extracted.pl_defend);
print("Player_atuallife:" + extracted.pl_atuallife);
print("Player_atualattack:" + extracted.pl_atualattack);
return extracted.pl_superhit;
}
Upvotes: 2