我正在尝试遍历数据库,并从“ eventList”返回与当前userID匹配的所有事件。我的问题是我在简单返回postID列表时遇到了麻烦。结果是我得到“ eventList”或“ undefined”。如何遍历数据库并在“ eventList”下返回postID?
我具有以下数据库结构:
{
"eventList" : {
"-LQ68rGmj_OYShda3tV9" : {
"name" : "Christmas",
"user" : "8eZcncLHPCWtuuhw90HRr79f0VO2"
},
"-L23Tr87ejdjh9osnG" : {
"name" : "easter",
"user" : "7gjsuhv84mvkkslv0jlssvghdasd"
}
},
"userProfile" : {
"8eZcncLHPCWtuuhw90HRr79f0VO2" : {
"firstName" : "M"
}
}
}
这是我一直在使用的代码:
this.postRef = firebase.database().ref('/eventList');
this.postRef.once("value")
.then(function(snapshot) {
var key = snapshot.key; // null
});
console.log(this.postRef.key);
最佳答案
尝试在节点内部循环并获取每个值,并在promise中打印数据,因为.once
处理异步工作,并且如果尝试将键移到.then
之外,则它将为null,如果promise也处理catch错误失败。
this.postRef = firebase.database().ref('/eventList');
this.postRef.once("value")
.then(function(snapshot) {
const eventData = snapshot.forEach(data => {
var key = data.key;
console.log(this.postRef.key);
});
return eventData;
}).catch(error => {
console.log('Error trying to fetch the data.');
});
关于javascript - Firebase PushID循环,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53093267/