选择来自 firebase 的所有用户帖子

时间:2021-07-21 11:57:04

标签: reactjs firebase google-cloud-firestore

我想做的是制作 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? 的事情,或者我该如何处理这类事情。谢谢大家的回复。

1 个答案:

答案 0 :(得分:1)

尝试使用 collectionGroup 获取所有用户的帖子(或链接)(假设链接是所有用户文档中的一个子集合):

获取所有用户的链接:

const linksRef = db.collectionGroup("links").get().then((snapshot) => {
  setLinks(
    snapshot.docs.map((doc) => ({
        id: doc.id,
        data: doc.data(),
      })
    )
  )
});

只要确保每个用户的文档中都有一个子集合“帖子”。

相关问题