检索Firebase数据并将其返回的最佳方法,或另一种方法

西格蒙杜

我将Firebase用于某些项目,并且非常喜欢该平台。

我偶然发现了一件我做不到的事情,并且想知道是否有任何方法可以实现它,或者是否存在另一种实现方法。

我要尝试做的是创建一个函数,以从Firebase数据库中检索最后X个条目,并将数据返回给调用函数。

像这样:

function getTwoLatestLocations()
{
    var twoLocations;
    myFirebaseRef.limitToLast(2).once('value', function (dataSnapshot) {
        twoLocations = dataSnapshot.val();
    }, function (errorObject) {
        // code to handle read error
        console.log("The read failed: " + errorObject.code);
    });

    return twoLocations;
}

然后像这样调用它:

function someCalcutationsWithTheTwoLastLocations()
{
    var twoLastLocations = getTwoLatestLocations();
    // Do some calculations
}

但是,您可能已经猜到对数据库引用的调用是异步的,因此返回对象始终是未定义的。

有没有办法优雅地做到这一点,以便我可以使方法分开?

PS当前,我所有的代码都在对数据库的调用内。丑陋的。

弗兰克·范普菲伦

为了分离出代码,您需要传递一个回调:

function getTwoLatestLocations(callback)
{
    var twoLocations;
    myFirebaseRef.limitToLast(2).once('value', function (dataSnapshot) {
        twoLocations = dataSnapshot.val();
        callback(twoLocations);
    }, function (errorObject) {
        // code to handle read error
        console.log("The read failed: " + errorObject.code);
    });

}

然后像这样调用它:

function someCalcutationsWithTheTwoLastLocations()
{
    getTwoLatestLocations(function(twoLocations) {
        // Do some calculations
    });
}

要记住的重要一点是,您不能等待异步加载的内容。

这已经涵盖了好几次了,其中包括以下相关问题列表中的最佳答案:处理函数中的异步调用(Firebase)

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用方法返回值作为参数与在一种方法中设置类变量并将其用作另一种方法的参数

来自分类Dev

从另一种方法检索到的一种方法中设置的属性返回null

来自分类Dev

从承诺中返回数据并在另一种方法中获取它

来自分类Dev

我过度查询MySql数据库。检索许多数据的另一种方法?

来自分类Dev

无法捕获从一种方法到另一种方法的返回值

来自分类Dev

将值从一种方法返回到另一种方法

来自分类Dev

如何在java中将Int从一种方法返回到另一种方法

来自分类Dev

在Codeigniter中将数据从一种方法解析为另一种方法

来自分类Dev

调用get方法的另一种方法

来自分类Dev

在 Vue2 中用另一种方法检索 e.target.files

来自分类Dev

在 Vue2 中用另一种方法检索 e.target.files

来自分类Dev

买卖股票的最佳时机-Python中的另一种方法

来自分类Dev

如何从另一种方法访问方法的返回类型

来自分类Dev

Firebase方法完成reactjs之前运行另一种方法的问题

来自分类Dev

在Firebase中将JSON文件导入实时数据库的另一种方法

来自分类Dev

在Firebase中将JSON文件导入实时数据库的另一种方法

来自分类Dev

找出一种方法是否可以调用另一种方法

来自分类Dev

terraform计划是一种方法,但不是另一种方法?

来自分类Dev

无法将一种方法调用到另一种方法

来自分类Dev

使用 List 从一种方法到另一种方法

来自分类Dev

在 Python 中从另一种方法调用一种方法

来自分类Dev

使用一种方法的结果以另一种方法计算价格

来自分类Dev

将一种方法的 var 用于另一种方法

来自分类Dev

图形G的另一种方法

来自分类Dev

调用活动的另一种方法。

来自分类Dev

click()的另一种方法

来自分类Dev

如何从另一种方法使用数组?

来自分类Dev

另一种方法是选择案例

来自分类Dev

MySQL使用GROUP BY的另一种方法

Related 相关文章

  1. 1

    使用方法返回值作为参数与在一种方法中设置类变量并将其用作另一种方法的参数

  2. 2

    从另一种方法检索到的一种方法中设置的属性返回null

  3. 3

    从承诺中返回数据并在另一种方法中获取它

  4. 4

    我过度查询MySql数据库。检索许多数据的另一种方法?

  5. 5

    无法捕获从一种方法到另一种方法的返回值

  6. 6

    将值从一种方法返回到另一种方法

  7. 7

    如何在java中将Int从一种方法返回到另一种方法

  8. 8

    在Codeigniter中将数据从一种方法解析为另一种方法

  9. 9

    调用get方法的另一种方法

  10. 10

    在 Vue2 中用另一种方法检索 e.target.files

  11. 11

    在 Vue2 中用另一种方法检索 e.target.files

  12. 12

    买卖股票的最佳时机-Python中的另一种方法

  13. 13

    如何从另一种方法访问方法的返回类型

  14. 14

    Firebase方法完成reactjs之前运行另一种方法的问题

  15. 15

    在Firebase中将JSON文件导入实时数据库的另一种方法

  16. 16

    在Firebase中将JSON文件导入实时数据库的另一种方法

  17. 17

    找出一种方法是否可以调用另一种方法

  18. 18

    terraform计划是一种方法,但不是另一种方法?

  19. 19

    无法将一种方法调用到另一种方法

  20. 20

    使用 List 从一种方法到另一种方法

  21. 21

    在 Python 中从另一种方法调用一种方法

  22. 22

    使用一种方法的结果以另一种方法计算价格

  23. 23

    将一种方法的 var 用于另一种方法

  24. 24

    图形G的另一种方法

  25. 25

    调用活动的另一种方法。

  26. 26

    click()的另一种方法

  27. 27

    如何从另一种方法使用数组?

  28. 28

    另一种方法是选择案例

  29. 29

    MySQL使用GROUP BY的另一种方法

热门标签

归档