【发布时间】:2017-01-20 21:45:35
【问题描述】:
当发表帖子或评论时,用户作者只是通过 ID 添加。这样,当用户决定更新他们的头像/姓名等时,我不必找到他们曾经发布的每条帖子和评论并在那里更新。
当我只是抓取帖子并将它们作为有效负载传递(没有作者信息)时,它工作正常,没有错误:
export const fetchPostsByNewest = () => {
return (dispatch) => {
firebase.database().ref('/social/posts')
.on('value', snapshot => {
dispatch({ type: NEW_POSTS_FETCH_SUCCESS, payload: snapshot.val() });
};
};
};
我尝试过像这样获取作者信息,但我无法解决如何仅在一个有效负载中完成所有操作:
export const fetchPostsByNewest = () => {
return (dispatch) => {
firebase.database().ref('/social/posts').on('value', postSnapshot => {
const posts = postSnapshot.val();
const postsAsArray = Object.keys(posts).map(postId => posts[postId]);
postsAsArray.forEach(post => {
const postWithUser = {};
Object.keys(post).forEach(key => {
postWithUser[key] = post[key];
});
const userId = post.author;
firebase.database().ref(`/social/users/${userId}`).once('value', userSnapshot => {
const profile_info = userSnapshot.val();
postWithUser.profile_info = profile_info.profile_info;
console.log(postWithUser);
dispatch({ type: NEW_POSTS_FETCH_SUCCESS, payload: postWithUser });
});
});
});
};
};
这些是我从上面得到的控制台日志:
这似乎带来了正确的数据,但我得到了这个错误:
你能给我一些建议吗,这让我发疯了!
谢谢!
【问题讨论】:
标签: javascript reactjs firebase react-native redux