【问题标题】:firebase database function return valuefirebase 数据库函数返回值
【发布时间】:2020-08-10 13:37:00
【问题描述】:

我在从 firebase 读取数据后尝试返回一个值,但我没有得到正确的结果:

这就是我所拥有的:

bill = database.ref('/restaurant/' + orderTest.restaurantKey ).once('value').then(snapchot =>{
      restaurantData = snapchot.val()
      *some functions that make billTest to 0
      billTest = 0;
      return billTest;
    });

当我控制台记录账单时,我从中得到的是:

ZoneAwarePromise {__zone_symbol__state: null, __zone_symbol__value: Array(0)}
__zone_symbol__state: true
__zone_symbol__value: 0
Symbol(Symbol.toStringTag): (...)
__proto__: Object

但我只想获得正常值 0。

我知道我做错了什么,但我尝试了我所知道的一切。我也是一个初学者,所以我在这里寻求一些帮助

【问题讨论】:

  • 我马上试试
  • 当我使用它时,我得到这个错误“Assigned expression type Promise is not assignable to type number”
  • 据我所见,我的答案中没有任何代码将承诺分配给一个数字。哪一行给出了这个错误?
  • 嘿@Fábio。有更新吗?

标签: javascript firebase firebase-realtime-database promise return-value


【解决方案1】:

数据是从 Firebase 异步加载的。使用async / await 关键字可以达到最接近现在的效果:

const snapshot = await database.ref('/restaurant/' + orderTest.restaurantKey ).once('value')

restaurantData = snapchot.val()
billTest = 0;
return billTest;

我建议花一些时间阅读异步方法调用,例如:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-30
    • 1970-01-01
    • 1970-01-01
    • 2021-08-17
    • 2020-12-07
    • 2020-08-20
    • 2020-01-02
    • 1970-01-01
    相关资源
    最近更新 更多