Swift-在whereField子句中传递多个参数以从Firebase检索

时间:2019-12-16 23:32:52

标签: ios swift firebase google-cloud-firestore

我是新手,现在正在尝试进行一些基本操作。  我在这里的场景是,我试图通过传递自变量作为搜索条件来从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()



            }
        }
    }

}

1 个答案:

答案 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