Javascript 从firebase数据快照获取字符串形式的值

Javascript 从firebase数据快照获取字符串形式的值,javascript,node.js,firebase,firebase-realtime-database,Javascript,Node.js,Firebase,Firebase Realtime Database,我只想将键的值作为字符串获取并使用它们 但是firebase快照总是返回键/值对 我想获得username的值(kha333n如本文所示),并在message.channel.send('User data is:')中使用它 控制台日志 Debugger attached. VU Bot Loaded! 644787932519071744 关于使用钥匙 PS C:\VU-Bot> node .\index.js Debugger attached. VU Bot Loaded

我只想将键的值作为字符串获取并使用它们 但是firebase快照总是返回键/值对

我想获得username的值(
kha333n
如本文所示),并在
message.channel.send('User data is:')中使用它

控制台日志

   Debugger attached.
VU Bot Loaded!
644787932519071744
关于使用钥匙

PS C:\VU-Bot> node .\index.js
Debugger attached.
VU Bot Loaded!
{ username: 'kha333n' }
username
与新引用一起使用时返回。。。(以上更新代码)


当使用val而不是key时返回。

与作为属性的
key不同,
val()
实际上是一个函数,因此需要用括号调用
()

因此,要记录快照的键和值,请执行以下操作:

firebase.database().ref('users').child(message.author.id).get()
.then ((snapshot) => {
    console.log(snapshot.val());
    snapshot.forEach(function(data) {
        console.log(data.key);
        console.log(data.val());
    });
});

如果您只想获取用户的用户名,可以通过以下方式更轻松地实现:

firebase.database().ref('users').child(message.author.id).child('username').get()
.then ((snapshot) => {
    console.log(snapshot.val());
});

这里不需要循环,因为我们已经加载了我们感兴趣的一个属性。

key
是一个属性,而不是一个函数。所以
data.key
。我已经尝试了文档中给出的所有方法。我不知道该如何处理那个Usman。我所能看到的只是您共享的代码和相应的错误消息,在这种情况下(正如错误消息中所指出的),您试图在上调用
key()
函数,但该类只有
key
属性。如果您将其称为
data.key
(不含
()
),此错误将消失。问题已更新。。。
firebase.database().ref('users').child(message.author.id).get()
.then ((snapshot) => {
    console.log(snapshot.val());
    snapshot.forEach(function(data) {
        console.log(data.key);
        console.log(data.val());
    });
});
firebase.database().ref('users').child(message.author.id).child('username').get()
.then ((snapshot) => {
    console.log(snapshot.val());
});