Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从2个集合中获取数据并在Firestore中将它们绑定在一起_Javascript_Firebase_Vue.js_Google Cloud Firestore - Fatal编程技术网

Javascript 如何从2个集合中获取数据并在Firestore中将它们绑定在一起

Javascript 如何从2个集合中获取数据并在Firestore中将它们绑定在一起,javascript,firebase,vue.js,google-cloud-firestore,Javascript,Firebase,Vue.js,Google Cloud Firestore,我对使用子集合加载的理解有问题。我有两个收集,一个是帖子收集和评论收集。在posts集合中,有一些posts内部具有唯一的postId,并且每个post在comments集合中都有不同的注释。(见下文) 我的目标是获得每个帖子的相关评论 users -> 'userId' -> posts -> 'postId' -> comments -> 'commentId' 我的代码 // get posts firebase.firestore().collection

我对使用子集合加载的理解有问题。我有两个收集,一个是帖子收集和评论收集。在posts集合中,有一些posts内部具有唯一的
postId
,并且每个post在comments集合中都有不同的注释。(见下文)

我的目标是获得每个帖子的相关评论

users -> 'userId' -> posts -> 'postId' -> comments -> 'commentId'
我的代码

// get posts
firebase.firestore().collection('users').doc(userId).collection('posts')
 .get().then((querySnapshot) => {
    querySnapshot.forEach((doc) => {
        this.posts.push(doc.data());
    });
});

vue.js
code

...
<v-timeline-item
  v-for="(item, index) in comments"
  :key="index"
>
  <span>{{item.content}}</span>
</v-timeline-item>
。。。
{{item.content}

我知道如何将一篇帖子中的评论添加到帖子中。但是,如果我想显示更多的帖子和每个帖子的所有评论,该怎么办

嗨,你还在寻找解决方案吗?你能澄清一下你想做什么吗?是不是每个帖子都有评论?如果是这样的话,您将需要对它们进行迭代。也就是说,您将为从第一个代码段获得的每个
postId
执行第二个代码段。您可以将第二个代码段封装在另一个
forEach
语句中,迭代第一个代码段生成的帖子数组。我使用
collectionGroup
Great找到了一个解决方案!如果这些解决方案对你有效,你介意在这里分享吗?这将帮助其他可能遇到同样情况的用户结束这篇文章。
...
<v-timeline-item
  v-for="(item, index) in comments"
  :key="index"
>
  <span>{{item.content}}</span>
</v-timeline-item>