android - 如何在 Cloud Firestore 中使用文档 ID 执行集合组查询
问题描述
所以几天前,我将我的应用程序帖子从实时数据库移到了 Cloud Firestore,因为 Firestore 显然具有更灵活的查询。我一直在修改我的代码以使用 firestore 作为新数据库。现在我遇到了一个问题。如何检索“帖子”集合中的每个文档,这些文档具有包含特定命名文档的“喜欢”集合?我不知道这是否有意义,所以这里有一张展示问题的图片:
我对 firebase 实时数据库有一个有效的查询,但不知道如何使用 firestore 进行查询。有可能还是我必须更改数据库的结构?如果我必须改变结构,获得相同结果的最方便的方法是什么?
解决方案
目前这对于集合组查询是不可能的。您可能很想在查询上放置一个过滤器FieldPath.documentId() == 'your-doucment-id'
,但这不被支持。 FieldPath.documentId()
实际上是一个token,指的是完全唯一的文档id,它包含了文档的整个路径。
解决方法是将文档 ID 作为字段存储在文档中,然后过滤该字段的内容。因此,如果文档有一个id
使用文档 ID 调用的字段,您可以查询collectionGroup("Likes").whereEquals('id', 'your-document-id')
.
推荐阅读
- node.js - 如何将图像 url 保存到 mongodb 并取回
- javascript - 将不同类的 NavLinks 导入 React 中的 NavBar 类
- ios - SwiftUI (dismiss-keyboard) 覆盖禁用底层操作
- python - 如何抓取热门帖子
- python - 检查 Django 模型是否存在于数组中
- maven-surefire-plugin - 无法将 POM.XML 作为 Maven-Install 执行
- laravel - Laravel 8图像干预:无法将图像数据写入路径
- c++ - shared_ptr 的问题。我无法创建没有错误的结构
- excel - Excel-将 N x 2 范围转换为 2N x 1
- java - 如何将十六进制值放入字节数组