【发布时间】:2020-02-03 23:33:24
【问题描述】:
我想检索所有帖子然后每个帖子都有一个uid,使用这个uid我想检索用户信息
我的代码是这样的,但它不工作并且状态在 then 块中没有改变
getAllPost(){
let allPost = firebase.database().ref("all-post");
let postAll = [];
allPost.once("value").then(data => {
data.forEach(function (childSnapshot) {
let childData = childSnapshot.val();
childData.postId = childSnapshot.key;
let userInfo = firebase.database().ref(`users/${childData.uid}`);
userInfo.once("value").then(data => {
childData.userInfo = data;
postAll.push(childData);
})
})
}).then(()=>{
this.setState({ allPost: postAll,loading: false },);
}).catch(err => {
this.setState({ loading: false });
});
}
【问题讨论】:
-
问题是你在forEach中运行异步调用,这是同步的。
标签: reactjs firebase firebase-realtime-database