【发布时间】:2021-07-19 11:22:00
【问题描述】:
我正在使用 Firestore 为使用 Swift 的 iOS 应用存储好友列表。
我的friends 集合中的每个文档都有一个sender、target 和accepted 字段
当用户打开他们的朋友列表时,我需要该应用程序检索他们的用户 ID 在 target 或 sender 字段中的每个文档,并且仅在 accepted == true 字段中进行检索
我知道我可以链接 .where() 函数来创建 AND 查询。
但据我所知,无法使用 Firestore 进行 OR 查询。
有没有办法在一个查询中做到这一点?
谢谢
编辑
这是数据库结构的快照
每个文档都是在发送好友请求时创建的,然后在需要时用于为两个用户构建好友列表(而不是存储 2 个用户 ID 数组,每次更改都必须单独更新)
【问题讨论】:
-
请分享您的数据库结构的屏幕截图,然后说明您要查找哪些字段?
-
我对我的问题进行了一些小改动以使其更清晰一些,但您所要求的一切都已在问题@Dharmaraj 中提供
-
文档结构我还不清楚。
accepted字段是数组还是映射?您是否存储了作为用户朋友的用户 ID 数组?一个示例屏幕截图真的很有帮助 -
虽然@frankvanpuffelen 显示没有直接的“或”样式查询,但您通常可以利用数组来提供类似的功能。我用一个查询解决了这个问题的代码抛出了一个答案(每个 Franks 的答案)
标签: swift firebase google-cloud-firestore