我想做的是制作 2 个单独的页面,其中一个页面仅包含当前用户的帖子,第二个页面来自所有用户。想不通第二个怎么做,怎么选择所有用户的帖子。
我的 firebase db 树看起来像这样 - /users/*USERID*/link/*LINKID*
。在我的页面上,我呈现来自当前登录用户的帖子:
const linksRef = db.collection(`users/${user.uid}/link`);
useEffect(() => {
linksRef.orderBy("timestamp", "desc").onSnapshot((snapshot) =>
setLinks(
snapshot.docs.map((doc) => ({
id: doc.id,
data: doc.data(),
}))
)
);
}, []);
有没有办法做类似 users/ALL/link?
的事情,或者我该如何处理这类事情。谢谢大家的回复。
答案 0 :(得分:1)
尝试使用 collectionGroup
获取所有用户的帖子(或链接)(假设链接是所有用户文档中的一个子集合):
获取所有用户的链接:
const linksRef = db.collectionGroup("links").get().then((snapshot) => {
setLinks(
snapshot.docs.map((doc) => ({
id: doc.id,
data: doc.data(),
})
)
)
});
只要确保每个用户的文档中都有一个子集合“帖子”。