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

问题描述 投票:0回答:2

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

enter image description here

我对 firebase 实时数据库进行了有效查询,但不知道如何使用 firestore 进行查询。是否可能或者我必须更改数据库的结构?如果我确实必须改变结构,获得相同结果的最方便方法是什么?

android firebase google-cloud-firestore
2个回答
39
投票

目前对于集合组查询来说这是不可能的。 您可能会想在

FieldPath.documentId() == 'your-doucment-id'
的查询中添加过滤器,但这是不受支持的。
FieldPath.documentId()
实际上是一个令牌,指的是完全唯一的文档ID,其中包括文档的整个路径。

解决方法是将文档 ID 作为字段存储在文档中,然后过滤该字段的内容。 因此,如果文档有一个名为

id
的字段以及文档的 ID,您可以查询
collectionGroup("Likes").whereEquals('id', 'your-document-id')


0
投票

通常当

id
已知时,
path
也已知。相反,存储它,当您需要时,您可以直接获取文档,而无需查询。

© www.soinside.com 2019 - 2024. All rights reserved.