Javascript 如何从2个集合中获取数据并在Firestore中将它们绑定在一起
我对使用子集合加载的理解有问题。我有两个收集,一个是帖子收集和评论收集。在posts集合中,有一些posts内部具有唯一的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
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>