我想问一个与 firestore 查询 swift 相关的问题。我的firestore结构如下:
目前我开发了一个搜索系统,用户可以在其中过滤 min
和 max
人每个 team
。下面是对 .collection("team")
的查询
Firestore.firestore().collection("team")
.whereField("min", isGreaterThanOrEqualTo : filterMin)
.whereField("max", isLessThanOrEqualTo : filterMax)
预期:如果用户放置
filterMin
= 0 和 filterMax
= 600 将显示 team1
和 team2
的数据,如果用户放置 filterMin
= 3 和 filterMax
= 500,则仅显示 team2
的数据。但问题是如果我使用上面的代码,我会收到如下错误
我已经阅读了文档,但似乎对我帮助不大。我仍然是快速开发和firebase的新手。谢谢你帮助我。
最佳答案
Cloud Firestore 目前不允许您执行多个不等式过滤器。解决方法可能是运行第一个 .whereField 查询,然后在获得文档后,为第二个查询过滤数组。
Firestore.firestore().collection("team")
.whereField("min", isGreaterThanOrEqualTo : filterMin)
.getDocuments { (snapshot, error) in
if let snapshot = snapshot {
for document in snapshot.documents {
let data = document.data()
//parse your data into an array of teams
}
}
let filteredTeams = teams.filter { $0.max < filterMax }
}
关于swift - Firestore 查询 Swift 4 的范围,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50122084/