我是 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
});
}
}
最佳答案
您的 return 语句实际上只是从您传递给 then()
的匿名函数返回。它没有从 this.getEmoji
返回。当您调用getEmoji
时,它将立即返回,一段时间后您的数据库查询将生成结果。数据库查询是异步的,因此您应该通过返回一个根据查询结果解析的 Promise 来使 getEmoji
异步。 getEmoji
的调用者可以使用该 Promise 的 then() 方法来接收结果。
关于javascript - Firebase Nodejs返回值错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50006591/