Firebase Nodejs返回值错误

时间:2018-04-24 16:23:57

标签: javascript node.js firebase firebase-realtime-database

我是node和firebase的初学者,我不知道如何在这里获得正确的输出值。 在控制台中,我得到了正确的值,但返回值是无关紧要的。

function Emoji() {

var ref = firebase.database().ref('users').child('9ifrkEw7YjSRGtiaFFHT1rzieDA2');

this.getEmoji = function () {
    ref.once('value').then(function (snapshot) {
        console.log(snapshot.val().emoji); //displays the value from database 
        return  String(snapshot.val().emoji); //displays undefiened
    });
}

}

1 个答案:

答案 0 :(得分:1)

您的return语句实际上只是从您传递给then()的匿名函数返回。它没有从this.getEmoji返回。当您致电getEmoji时,它会立即返回 ,一段时间后您的数据库查询将生成结果。数据库查询是异步,因此您应该通过返回使用查询结果解析的承诺来使getEmoji异步。 getEmoji的调用者可以使用该promise的then()方法来接收结果。