javascript - Firebase Nodejs返回值错误

标签 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
    });
}

}

最佳答案

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

关于javascript - Firebase Nodejs返回值错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50006591/

相关文章:

ios - 第一个 Firebase 查询项在刷新之前出现乱序问题

javascript - 如何每隔 'x' 小时向 Slack 发送一条消息?

node.js - node.js 把它的文件放在哪里?

javascript - 在 nodejs 中使用 selenium-webdriver 和 phantomjs 设置用户代理

php - 在 firestore (php) 中增加一个字段

ios - 如何使用 firebase Auth 恢复密码 在 firebase 数据库中重置密码邮件

javascript - 改变 Javascript 中的数学函数

javascript - 如何将元素列表放置在搜索输入下方

javascript - 使用对象的属性作为键转换对象列表中的对象数组

node.js - 无法更新mongodb中的数据