如何在Cloud Firestore中使用文档ID执行集合组查询

时间:2019-05-17 14:14:43

标签: android firebase google-cloud-firestore

几天前,由于Firestore显然具有更灵活的查询功能,我将应用程序帖子从实时数据库移至了Cloud Firestore。我一直在修改我的代码以将Firestore与新数据库一起使用。现在我遇到了一个问题。如何检索“帖子”集合中具有“喜欢”集合的每个文档,其中包含一个特定命名的文档?我不知道这是否有意义,所以这是展示问题的图像: enter image description here

我对Firebase实时数据库有一个有效的查询,但无法弄清楚如何使用Firestore进行查询。有可能还是必须更改数据库的结构?如果我必须更改结构,那么获得相同结果的最便捷方法是什么?

1 个答案:

答案 0 :(得分:1)

当前对于集合组查询是不可能的。您可能会想在查询FieldPath.documentId() == 'your-doucment-id'上放置一个过滤器,但这只是不受支持。 FieldPath.documentId()实际上是一个令牌,它指向完全唯一的文档ID,其中包括文档的整个路径。

解决方法是将文档ID作为文档中的字段存储,然后根据该字段的内容进行过滤。因此,如果文档中有一个名为id且带有文档ID的字段,则可以查询collectionGroup("Likes").whereEquals('id', 'your-document-id')