当前位置: 首页 > 知识库问答 >
问题:

Firestore中的复合whereField查询(Swift

曹伟泽
2023-03-14
    null
.whereField("user1", in: ["Alex", "Adam"].whereField["user2", in: ["Adam", "Alex"]

我认为这会起作用,因为它表示获取文档,其中user1等于“Alex”或“Adam”,user2等于“Adam”或“Alex”。但是在一个查询中不能多次使用in筛选器。我怎么才能让它工作?

以下是我的Firestore数据库的截图:

共有1个答案

池麒
2023-03-14

我添加这个豆荚是为了更方便的工作

pod 'FirebaseFirestoreSwift'

第一条路

如果你想要得到所有的聊天与这2个用户为此,你需要添加新的跨域与所有用户在此聊天

let searchTerm = channelReference.whereField("users", arrayContainsAny: [ID1, ID2])
let searchTerm1 = reference
            .whereField("user1", isEqualTo: "Alex")
            .whereField("user2", isEqualTo: "Adam")

let searchTerm2 = reference
            .whereField("user1", isEqualTo: "Adam")
            .whereField("user2", isEqualTo: "Alex")
 类似资料:
  • Firestore文档称: 使用子句进行查询。在这种情况下,应该将查询拆分为大于查询和小于查询。例如,尽管不支持查询子句,但可以通过组合两个查询获得相同的结果集,一个查询使用子句,另一个使用子句。 我需要抓住用户在一定的年龄范围,所以这似乎是一个伟大的方式来抓住相关的,但不幸的是,我显然不明白如何使用这一点。 这不起作用,当我使用时,我会得到错误。 更新:显然他们没有专门的SWIFT文档。 我得到

  • 我想我读到您可以使用新的Firebase Firestore查询子集合,但我没有看到任何示例。例如,我以以下方式设置了Firestore: 舞蹈[收藏] DanceName 歌曲[收藏] 松南 我如何才能查询“查找所有的舞蹈在songName=='x'”

  • 我现在正在为stories添加选项,并希望查询相同的feedItems集合,其中story字段等于true 然而,在这种情况下,我还需要确保只获得不到24小时的对象。所以我希望我的查询有两个稍微不同的过滤器集 一个带有 如果不可能合并,我将把它们分成两个单独的查询,然后依次调用。

  • 我正在尝试根据一个集合中保存的数据从另一个集合中检索数据。如果我的考勤集合中的userUID等于我的学生集合中的userUID,我将检索学生的名称。这可能吗?