使用操作回调从实时数据库中检索数据

德鲁尔

我正在尝试使用 Unity 从 Firebase 的实时数据库接收 JSON 值。

我执行以下操作:

   FirebaseDatabase.DefaultInstance
          .GetReference("Leaders").OrderByChild("score").GetValueAsync().ContinueWith(task =>
                    {
                        if (task.IsFaulted)
                        {
                            Debug.LogError("error in reading LeaderBoard");
                            return;
                        }
                        else if (task.IsCompleted)
                        {
                            Debug.Log("Received values for Leaders.");
                            string JsonLeaderBaord = task.Result.GetRawJsonValue();
                            callback(JsonLeaderBaord);
                        }
        }
  });

尝试阅读回调:

private string GetStoredHighScores()
    {
      private string JsonLeaderBoardResult;
      DataBaseModel.Instance.RetriveLeaderBoard(result =>
            {
                JsonLeaderBoardResult = result; //gets the data

            });
  return JsonLeaderBoardResult; //returns Null since it doesn't wait for the result to come.
}

问题是我如何等待回调返回值,然后 returnJsonLeaderBoardResult.

程序员

return JsonLeaderBoardResult; // 返回 Null,因为它不等待结果到来。

RetriveLeaderBoard函数不会立即返回。您可以使用协程等待它或JsonLeaderBoardResult通过Action. Action在您的情况下使用更有意义。

将字符串返回类型更改为 void 然后通过Action以下方式返回结果

private void GetStoredHighScores(Action<string> callback)
{
    string JsonLeaderBoardResult;
    DataBaseModel.Instance.RetriveLeaderBoard(result =>
            {
                JsonLeaderBoardResult = result; //gets the data
                if (callback != null)
                    callback(JsonLeaderBoardResult);
            });
}

用法:

GetStoredHighScores((result) =>
{
    Debug.Log(result);
});

编辑:

太好了,但是在 Action 之外的 `GetStoredHighScores' 中获得结果后仍然需要做一些事情,否则我会得到这样的错误:get_transform 只能从主线程调用。

您收到此错误是因为RetriveLeaderBoard它正在另一个线程上运行。UnityThread这篇文章中抓取然后使用UnityThread.executeInUpdate.

您的新代码:

void Awake()
{
    UnityThread.initUnityThread();
}

private void GetStoredHighScores(Action<string> callback)
{
    string JsonLeaderBoardResult;
    DataBaseModel.Instance.RetriveLeaderBoard(result =>
            {
                JsonLeaderBoardResult = result; //gets the data

                UnityThread.executeInUpdate(() =>
                {
                    if (callback != null)
                        callback(JsonLeaderBoardResult);
                });
            });
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Firebase:从实时数据库中检索childByAutoID

来自分类Dev

Firebase:以Int形式从实时数据库中检索数据

来自分类Dev

仅从实时数据库中检索数据一次

来自分类Dev

从 Firebase 实时数据库中检索子数据

来自分类Dev

无法从 Firebase 实时数据库中检索数据

来自分类Dev

在Firestore中检索实时数据库值

来自分类Dev

从 Firebase 实时数据库中检索好友

来自分类Dev

使用选项从Firebase实时数据库中检索MCQ数据

来自分类Dev

如何使用Firebase从实时数据库存储和检索图像url?

来自分类Dev

数据更改后如何从Firebase实时数据库中检索特定数据

来自分类Dev

无法将数据从 Firebase 实时数据库检索到 Web 应用程序中

来自分类Dev

从 Firebase(实时数据库)检索数据到列表中(Kotlin)

来自分类Dev

实时数据库

来自分类Dev

如何从 Firebase 实时数据库正确检索值?

来自分类Dev

无法听从实时数据库(RTDB)传入的数据

来自分类Dev

列表视图从android中firebase的实时数据库中检索一项

来自分类Dev

Firebase 实时数据库:无法从 Firebase 数据库发送或检索数据

来自分类Dev

Android 应用程序:从实时数据库到 Firestore - 将数据更新到数据库

来自分类Dev

如何从以下实时数据库结构中获取检索项?

来自分类Dev

Android Firebase - 从 Firebase 实时数据库中检索特定值

来自分类Dev

无法使用 FIrebase 实时数据库通过他的电子邮件检索好友密钥

来自分类Dev

如何从Firebase中的实时数据库获取数据

来自分类Dev

Firebase 实时数据库中的数据插入无限

来自分类Dev

Firebase 实时数据库,从键值对中获取数据

来自分类Dev

Firebase + JavaScript-从实时数据库获得10条最新记录

来自分类Dev

如何使用firebase实时数据库检查数据是否已经在html表中?

来自分类Dev

我无法从Firebase实时数据库中将数据检索到字符串变量中

来自分类Dev

我应该为androidX中的实时数据库使用哪个firebaseUI库?

来自分类Dev

如何从Firebase实时数据库中删除?

Related 相关文章

  1. 1

    Firebase:从实时数据库中检索childByAutoID

  2. 2

    Firebase:以Int形式从实时数据库中检索数据

  3. 3

    仅从实时数据库中检索数据一次

  4. 4

    从 Firebase 实时数据库中检索子数据

  5. 5

    无法从 Firebase 实时数据库中检索数据

  6. 6

    在Firestore中检索实时数据库值

  7. 7

    从 Firebase 实时数据库中检索好友

  8. 8

    使用选项从Firebase实时数据库中检索MCQ数据

  9. 9

    如何使用Firebase从实时数据库存储和检索图像url?

  10. 10

    数据更改后如何从Firebase实时数据库中检索特定数据

  11. 11

    无法将数据从 Firebase 实时数据库检索到 Web 应用程序中

  12. 12

    从 Firebase(实时数据库)检索数据到列表中(Kotlin)

  13. 13

    实时数据库

  14. 14

    如何从 Firebase 实时数据库正确检索值?

  15. 15

    无法听从实时数据库(RTDB)传入的数据

  16. 16

    列表视图从android中firebase的实时数据库中检索一项

  17. 17

    Firebase 实时数据库:无法从 Firebase 数据库发送或检索数据

  18. 18

    Android 应用程序:从实时数据库到 Firestore - 将数据更新到数据库

  19. 19

    如何从以下实时数据库结构中获取检索项?

  20. 20

    Android Firebase - 从 Firebase 实时数据库中检索特定值

  21. 21

    无法使用 FIrebase 实时数据库通过他的电子邮件检索好友密钥

  22. 22

    如何从Firebase中的实时数据库获取数据

  23. 23

    Firebase 实时数据库中的数据插入无限

  24. 24

    Firebase 实时数据库,从键值对中获取数据

  25. 25

    Firebase + JavaScript-从实时数据库获得10条最新记录

  26. 26

    如何使用firebase实时数据库检查数据是否已经在html表中?

  27. 27

    我无法从Firebase实时数据库中将数据检索到字符串变量中

  28. 28

    我应该为androidX中的实时数据库使用哪个firebaseUI库?

  29. 29

    如何从Firebase实时数据库中删除?

热门标签

归档