C# 在Unity/c中请求firebase后返回字符串#
有人知道如何在Firebase数据库完成后返回get值吗? 例如,我想将字符串“extracted.pl_superhait”返回给另一个类,它是一个异步进程C# 在Unity/c中请求firebase后返回字符串#,c#,firebase,unity3d,firebase-realtime-database,C#,Firebase,Unity3d,Firebase Realtime Database,有人知道如何在Firebase数据库完成后返回get值吗? 例如,我想将字符串“extracted.pl_superhait”返回给另一个类,它是一个异步进程 public void LoadData_element(string player) { FirebaseApp.DefaultInstance.SetEditorDatabaseUrl(DATA_URL); FirebaseDatabase.DefaultInstance.GetReferenceFromUr
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);
}
}));
}
public void LoadData\u元素(字符串播放器)
{
FirebaseApp.DefaultInstance.SetEditorDatabaseUrl(数据URL);
FirebaseDatabase.DefaultInstance.GetReferenceFromUrl(数据\ URL).GetValueAsync()
.ContinueWith((任务=>
{
if(task.IsFaulted)
{
打印(“Falhou o Load dos dados”);
}
如果(task.IsCanceled)
{
打印(“取消加载dos护墙板”);
}
如果(任务已完成)
{
DataSnapshot datasnap=task.Result;
字符串pData=datasnap.GetRawJsonValue();
var humidval=datasnap.Child(player.GetRawJsonValue();
字符串测试=humidval.ToString();
打印(“x:+测试);
Firebase_Database_Player extracted=JsonUtility.FromJson(测试);
打印(“玩家名称:”+提取的.pl\u名称);
打印(“Player\u lfbar:+extracted.pl\u lfbar”);
打印(“玩家点击:+extracted.pl点击”);
打印(“播放器超级链接:+extracted.pl超级链接”);
打印(“玩家防守:+extracted.pl\u防守”);
打印(“Player_atuallife:+extracted.pl_atuallife”);
打印(“Player_atualattack:+extracted.pl_atualattack”);
}
}));
}
谢谢使函数异步并等待必要的调用
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;
}
public async Task LoadData\u元素(字符串播放器){
FirebaseApp.DefaultInstance.SetEditorDatabaseUrl(数据URL);
var reference=FirebaseDatabase.DefaultInstance.GetReferenceFromUrl(数据\ URL);
DataSnapshot datasnap=await reference.GetValueAsync()
字符串pData=datasnap.GetRawJsonValue();
var humidval=datasnap.Child(player.GetRawJsonValue();
字符串测试=humidval.ToString();
打印(“x:+测试);
Firebase_Database_Player extracted=JsonUtility.FromJson(测试);
打印(“玩家名称:”+提取的.pl\u名称);
打印(“Player\u lfbar:+extracted.pl\u lfbar”);
打印(“玩家点击:+extracted.pl点击”);
打印(“播放器超级链接:+extracted.pl超级链接”);
打印(“玩家防守:+extracted.pl\u防守”);
打印(“Player_atuallife:+extracted.pl_atuallife”);
打印(“Player_atualattack:+extracted.pl_atualattack”);
返回extracted.pl_;
}
创建一个将方法作为回调来设置值的方法?非常感谢!