从Firebase获取数据记录正确的值,但返回“未定义”

时间:2017-08-28 02:53:35

标签: javascript firebase firebase-realtime-database

我目前正在使用此功能从我的Firebase项目中获取数据:

function getv(user)
{
    var ref = firebase.database().ref('/users/'+user+'/points');

    ref.once("value", function(snapshot) {
        console.log(snapshot.val());
    });
}

但是,如果我在控制台中运行它,我会得到“未定义”,然后是值:

enter image description here

如果我尝试将其分配给变量,然后获取值...

x = getv('Donut')
console.log(x)

我得到“未定义”。我真的完全不知道为什么会发生这种情况。

感谢任何帮助,如果需要,我可以提供更多信息。

编辑:用console.log(snapshot.val())替换return snapshot.val()仍然会返回undefined。

编辑2:我尝试将我的函数转换为异步函数,将其转换为Promise,但它仍然返回undefined

undefined promise

异步版本:

async function getv(user)
{
    var ref = await firebase.database().ref('/users/'+user+'/points')

    ref.once("value", async function(snapshot) {
        return await snapshot.val()
    });
}

0 个答案:

没有答案