【问题标题】:return string after a request to firebase in Unity / c#在Unity / c#中向firebase发出请求后返回字符串
【发布时间】:2020-04-18 19:25:45
【问题描述】:

有谁知道在完成后如何将 get 的值返回到 Firebase 数据库? 例如,我想将字符串“extracted.pl_superhit”返回给另一个类,它是一个异步过程......

    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);

            }

        }));


}

谢谢

【问题讨论】:

  • 创建一个将方法作为回调设置值的方法?

标签: c# firebase unity3d firebase-realtime-database


【解决方案1】:

使函数异步并等待必要的调用

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;
}

【讨论】:

  • 非常感谢! ?成功了!但是,当我将其调用为 async 时,我也需要更改方法,然后它就很棒了!感谢您的帮助!
猜你喜欢
  • 2017-07-23
  • 1970-01-01
  • 2018-05-09
  • 1970-01-01
  • 2021-09-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-09
相关资源
最近更新 更多