从多个子集合中获取文档 - Firebase [重复]

Posted

技术标签:

【中文标题】从多个子集合中获取文档 - Firebase [重复]【英文标题】:Fetch documents from multiple subcollections - Firebase [duplicate] 【发布时间】:2020-04-23 23:09:39 【问题描述】:

我正在为管理员创建一个带有 firebase 集成的网络应用程序,管理员使用这个网络应用程序来监控用户从 ionic 开发的 androidios 应用程序发布的帖子或 cmets。

我正在使用 Firebase firestore,以下是数据库设计 posts/postsDocument/comments/commentsDocument.

这里的comments 是postsDocument 的子集合,其中包含特定帖子的所有cmets。 postDocumentcommentsDocument 还包含用户的 Firebase uid。

我的问题是,是否可以获取特定用户评论的所有 cmets。我可以查询单个集合,但在这种情况下 cmetsDocument 是一个子集合,我想获取用户在所有帖子中的所有 cmets 以进行监控。

【问题讨论】:

感谢 Frank 的编辑,现在干净多了。下次我会尝试格式化问题 【参考方案1】:

你可以查看firebase collection group query

var commentsQuery = db.collectionGroup('comments').where('commentOwnerID', '==', userId);//userId - firebase id of the user who commented
commentsQuery.get().then(function (querySnapshot) 
    querySnapshot.forEach(function (doc) 
        console.log(doc.id, ' => ', doc.data());
    );
);

另外,您可能需要创建支持您的查询的索引,请查看控制台以获取创建索引的链接

【讨论】:

这对我有用,我没有调查的组查询。感谢凯德

以上是关于从多个子集合中获取文档 - Firebase [重复]的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法获取子集合中的所有文档(Firestore)

如何从所有文档的子集合中检索所有数据

从登录用户 Flutter/Firebase 获取文档列表

Flutter Firebase 获取特定多个文档的子集合数据

Firestore 的子集合中每秒可以创建多少个文档?

Flutter 中的 Stream 和 Future