Javascript firebase数据库函数返回值

Javascript firebase数据库函数返回值,javascript,firebase,firebase-realtime-database,promise,return-value,Javascript,Firebase,Firebase Realtime Database,Promise,Return Value,我试图在从firebase读取数据后返回一个值,但ai没有得到正确的值: 这就是我所拥有的: bill = database.ref('/restaurant/' + orderTest.restaurantKey ).once('value').then(snapchot =>{ restaurantData = snapchot.val() *some functions that make billTest to 0 billTest = 0;

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

这就是我所拥有的:

bill = database.ref('/restaurant/' + orderTest.restaurantKey ).once('value').then(snapchot =>{
      restaurantData = snapchot.val()
      *some functions that make billTest to 0
      billTest = 0;
      return billTest;
    });
我从中得到的是,当我记录bill时:

ZoneAwarePromise {__zone_symbol__state: null, __zone_symbol__value: Array(0)}
__zone_symbol__state: true
__zone_symbol__value: 0
Symbol(Symbol.toStringTag): (...)
__proto__: Object
但我只想得到0的正常值


我知道我做错了什么,但我尽了全力。我也是一个乞丐,所以我在这里请求一些帮助

数据是从Firebase异步加载的。使用
async
/
await
关键字可以最接近您现在拥有的内容:

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

restaurantData = snapchot.val()
billTest = 0;
return billTest;
我建议花一些时间阅读异步方法调用,例如:

  • MDN指南

当我使用时,我会尝试一下,当我得到这个错误“赋值表达式类型Promise不可赋值给type number”时,我的答案中没有一个代码是将Promise赋值给一个数字。哪一行给出了那个错误?嘿@Fábio。有更新吗?