我是新手,现在正在尝试进行一些基本操作。 我在这里的场景是,我试图通过传递自变量作为搜索条件来从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()
}
}
}
}
答案 0 :(得分:1)
要同时过滤血型和城市,您只需向问题中的class MainActivity : Activity(), ActivityDelegate {
override val view by lazy { MainActivityView(this) }
override val routing by lazy { MainActivityRouting(this) }
}
internal inline class MainActivityView(val self: MainActivity): ActivityDelegate.View
internal inline class MainActivityRouting(val self: MainActivity): ActivityDelegate.Routing
添加多个呼叫即可。例如:
whereField(
如果要过滤多种血液,可以使用(非常新的)in
queries:
db.collection("users")
.whereField("bloodgroup", isEqualTo: "A-")
.whereField("city", isEqualTo: "Chicago")
.getDocuments { (snapshot, error) in