作者:杨浩 | 来源:互联网 | 2023-02-09 13:14
我有一个firebase数据库,具有以下结构:
这些随机UID中的每一个都有creator
和roomName
.我试图在数组中显示所有roomName ["Holy Robert Louis Stevenson", "Holy Sardine", "Holy Gunpowder"]
,但它总是显示为[Object, Object, Object]
这是我的代码:
const dbRef = firebase.initializeApp(config).database().ref().child('rooms');
...
componentDidMount(){
dbRef.on('value', snap => {
console.log(snap.val());
console.log('firebaseHolyArray: ', Object.values(snap.val()));
});
}
我试过console.log('firebaseHolyArray: ', Object.values(snap.val())["roomName"]);
但它显示未定义.如何显示roomName
数组格式的值?
1> Kato..:
您可以使用forEach()方法,该方法将从Firebase数据生成正确排序的列表:
dbRef.on('value', snap => {
var data = [];
snap.forEach(ss => {
data.push(ss.child('name').val());
});
console.log(data);
});
不需要使用Object.values()或使用下划线进行多次迭代,这两种情况都可能会产生无序数据和其他复杂问题.
此外,理想情况下,您应养成使用推荐的实践来处理列表的习惯,例如child_added
.