我正在寻找名为 users 的集合的数据,该集合的文档的 id 为登录用户的 uid。此外,这些文档包含一些数据和一个名为 posts 的子集合。 看起来像 -
所以现在,我需要一起获取所有四 (4) 个文档以及 posts 集合数据,以便我可以显示它。
我的方法- (这里我获取了文档 ID - 图像 ID 的中间部分)
// Fetching Firestore Users Document IDs
const [userDocs, setUserDocs] = React.useState([]);
React.useEffect(() => {
try {
const data = firestore.collection('users')
.onSnapshot(snap => {
let docIDs = [];
snap.forEach(doc => {
docIDs.push({id: doc.id});
});
setUserDocs(docIDs);
})
}
catch(err) {
console.log(err);
}
}, [])
现在,我尝试使用以下方式获取整个数据(这是行不通的)
// Fetching Firestore Posts Data
const [postData, setPostData] = useState([]);
React.useEffect(() => {
try {
userDocs.map(data => {
const data = firestore.collection('users/'+currentUser.uid+'/posts')
.onSnapshot(snap => {
let documents = [];
snap.forEach(doc => {
documents.push({...doc.data(), id: doc.id});
});
setPostData(documents);
})
})
}
catch(err) {
console.log(err);
}
}, [])
最后,我应该得到 postData 数组,我可以将其映射到我的卡片组件上,以将所有发布的图像和标题渲染到 UI。
我不确定这是否是实现我在这里所做的事情的正确方法,请帮助我纠正这个错误,如果有更微妙和简单的方法来做到这一点,请告诉我。谢谢你。