Javascript 从firebase数据快照获取字符串形式的值
我只想将键的值作为字符串获取并使用它们 但是firebase快照总是返回键/值对 我想获得username的值(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
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());
});