ios - 如何根据 Firestore 中子集合中的值过滤根集合?
问题描述
我在 Swift iOS 中使用 Cloud Firestore 数据库,我想根据每个文档的子集合中可用的值过滤根集合列表?
根集合--> 帖子--> 文档--> 子集合--> 文档--> 字段值
“fieldvalue”的值必须决定根集合帖子中的文档列表
我在下面尝试了这个,但它没有按要求工作。
let postsRef = Firestore.firestore()
.collection("posts")
.document()
.collection("comments")
.whereField("comment_author_id", isEqualTo: Auth.auth().currentUser!.uid)
.whereField("l1", isEqualTo: true)
.limit(to: 50)
请协助
解决方案
您的查询未按要求工作,因为调用时:
.document()
紧接着:
.collection("posts")
在不传递任何参数的情况下,Firestore 并不真正知道您要引用哪个文档。如果要获取2czkDrrg4gHgXbCID69u
文档中的所有评论,则应将该 id 传递给document()
函数,如下所示:
.collection("posts").document("2czkDrrg4gHgXbCID69u")
请记住,Firestore 查询很浅,只能从运行查询的集合中获取评论。单个查询只能使用单个集合中文档的属性。
如果您想获取集合中存在的所有文档中的所有评论posts
,那么您应该使用Firestore 集合组查询。请注意,所有子集合必须具有相同的(评论)名称。
推荐阅读
- reactjs - 无法让 React 倒数计时器停止
- reactjs - 创建下拉打字稿/实体框架
- postgresql - 如何使用 Postgresql 设置 NAND 约束
- sql - 在 Node.JS 中使用条件变量修改 SQL 查询所需的语法
- vba - 如何使用查找和替换在 VBA 编辑器中找到带有新行的单词?
- r - 根据选中的 tabPanel 更改闪亮仪表板侧边栏的内容
- mysql - 如何按下一个父母的 ID 订购我的 SQL 查询?
- authentication - 为什么访问 here.com 时出现 403 错误?
- r - 如何为R中的每个因素计算几个间隔内的事件?
- c# - 何时在实体 (EF Core 3.1) 上初始化导航属性?