我是 swift 的新手,正在尝试做一些基本操作。 我的场景是,我试图通过将参数作为搜索条件传递来从 firebase 获取数据。例如,我正在寻找按血型和城市筛选出的数据库中的献血者,我需要传递两个参数作为我的搜索条件。但是在 whereField 方法中我只能传递一个参数。有没有一种方法或其他方法可以用来传递多个参数?
下面是我目前的代码
@IBAction func fetchDataButtonTapped(_ sender: Any) {
let db = Firestore.firestore()
db.collection("users").whereField("bloodgroup", isEqualTo: "A-").getDocuments { (snapshot, error) in
if error == nil && snapshot != nil {
self.resultArray.removeAll()
for document in snapshot!.documents {
let dict = document.data()
let x = dict["firstname"] as? String
self.resultArray.append(x!)
self.myTableView.dataSource = self
self.myTableView.reloadData()
}
}
}
}
最佳答案
要同时过滤血型和城市,您只需在问题中添加对 whereField(
的多次调用即可。例如:
db.collection("users")
.whereField("bloodgroup", isEqualTo: "A-")
.whereField("city", isEqualTo: "Chicago")
.getDocuments { (snapshot, error) in
如果您想过滤多种血型,您可以使用(相当新的)in
queries :
db.collection("users")
.whereField("bloodgroup", in: ["A-", "A+"])
.whereField("city", isEqualTo: "Chicago")
.getDocuments { (snapshot, error) in
关于ios - Swift - 在 whereField 子句中传递多个参数以从 firebase 检索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59365679/