Firestore文档称:
使用!=
子句进行查询。在这种情况下,应该将查询拆分为大于查询和小于查询。例如,尽管不支持查询子句WHERE(“age”,“!=”,“30”)
,但可以通过组合两个查询获得相同的结果集,一个查询使用子句WHERE(“age”,“<”,“30”)
,另一个使用子句WHERE(“age”,“>”,30)
。
我需要抓住用户在一定的年龄范围,所以这似乎是一个伟大的方式来抓住相关的,但不幸的是,我显然不明白如何使用这一点。
let potentialMatchesRef = db.collection("users")
.whereField("isBanned", isEqualTo: false)
.whereField("isHidden", isEqualTo: false)
.whereField("location.country", isEqualTo: user.location.country)
potentialMatchesRef
.whereField("age", isGreaterThanOrEqualTo: user.preferences.ageRange.from)
.whereField("age", isLessThanOrEqualTo: user.preferences.ageRange.to)
这不起作用,当我使用where(“age”,“>”,30)
时,我会得到错误类型'query'的值没有成员'where'
。
更新:显然他们没有专门的SWIFT文档。
let potentialMatchesRef = db.collection("users")
.whereField("isBanned", isEqualTo: false)
.whereField("isHidden", isEqualTo: false)
.whereField("location.country", isEqualTo: user.location.country)
.whereField("age", isLessThanOrEqualTo: to)
.whereField("age", isGreaterThanOrEqualTo: from)
我得到错误获取文档时出错:错误域=FirFireStoreErrorDomain Code=9“查询需要索引。
有至少2个字段,我不能写年龄在两个。拜托,有人能帮忙吗。
当文档说明您可以“组合两个查询”时,这意味着您应该进行两个完全不同的查询,分别执行它们,并在客户机上组合结果以得到最终的文档集。
您要做的是使用两个子句进行查询,根据年龄进行筛选。这是行不通的,因为一个查询中的所有条件在逻辑上是一起的(目前Firestore中没有逻辑上的OR查询)。这样考虑一下-“年龄>30和年龄<30”的文档集总是生成0个文档,因为任何年龄值都不能满足这两个要求。
null 我认为这会起作用,因为它表示获取文档,其中user1等于“Alex”或“Adam”,user2等于“Adam”或“Alex”。但是在一个查询中不能多次使用in筛选器。我怎么才能让它工作? 以下是我的Firestore数据库的截图:
我现在正在为stories添加选项,并希望查询相同的feedItems集合,其中story字段等于true 然而,在这种情况下,我还需要确保只获得不到24小时的对象。所以我希望我的查询有两个稍微不同的过滤器集 一个带有 如果不可能合并,我将把它们分成两个单独的查询,然后依次调用。
我正在尝试根据一个集合中保存的数据从另一个集合中检索数据。如果我的考勤集合中的userUID等于我的学生集合中的userUID,我将检索学生的名称。这可能吗?
我想我读到您可以使用新的Firebase Firestore查询子集合,但我没有看到任何示例。例如,我以以下方式设置了Firestore: 舞蹈[收藏] DanceName 歌曲[收藏] 松南 我如何才能查询“查找所有的舞蹈在songName=='x'”