我想从 firebase 中的所有用户那里获取帖子 react native

Posted

技术标签:

【中文标题】我想从 firebase 中的所有用户那里获取帖子 react native【英文标题】:I wanna fetch posts from all the users in firebase react native 【发布时间】:2021-10-28 14:55:50 【问题描述】:

我想从 firebase 中的所有用户那里获取帖子。

这是获取代码

const fetchPosts = async () => 
    try 
      const list = [];

      await db
        .collection(`posts/*/userPosts`) // This is the line I want help with...

        .get()
        .then((querySnapshot) => 
          // console.log('Total Posts: ', querySnapshot.size);

          querySnapshot.forEach((doc) => 
            const  userId, post, postImg, likes, comments  = doc.data();
            list.push(
              id: doc.id,
              userId,
              userName: "Test Name",
              userImg:
                "https://lh5.googleusercontent.com/-b0PKyNuQv5s/AAAAAAAAAAI/AAAAAAAAAAA/AMZuuclxAM4M1SCBGAO7Rp-QP6zgBEUkOQ/s96-c/photo.jpg",

              post,
              postImg,
              liked: false,
              likes,
              comments,
            );
          );
        );

      setPosts(list);

      if (loading) 
        setLoading(false);
      

      console.log("Posts: ", posts);
     catch (e) 
      console.log(e);
    
  ;

  useEffect(() => 
    fetchPosts();
  , []);

我的 firebase cloud firestore 集合显示在 msg 下方的图片中。

这条路径是这样的:/posts/UserUID/userPosts/PostUID

问题是,如果用户添加帖子,它只会像这样保存/posts/UserUID/userPosts/PostUID

所以我想做的就是从所有用户那里获取帖子并呈现它们。 赞await db.collection(`posts/UserUID/userPosts`) // And there is more but not required for now

工具: javascript, 世博会, 反应原生, 火力基地, 云火库

【问题讨论】:

【参考方案1】:

使用集合组。

替换

await db.collection(`posts/*/userPosts`)

await db.collectionGroup(`userPosts`)

【讨论】:

以上是关于我想从 firebase 中的所有用户那里获取帖子 react native的主要内容,如果未能解决你的问题,请参考以下文章

使用带有快递的帖子:我想从用户那里接收数据,然后用新文件将该数据发送回用户

如何从孩子的 Firebase 获取数据?

Firebase 获取特定父级而不是所有子级 SWIFT

从所有记录中获取所有相关的多对多,而不是从每个记录 laravel

在 Django 中进行一个复杂的查询,我所有的后续帖子

如何获得具有特定属性的特定孩子..这是我的火力基地