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

标签 ios swift firebase google-cloud-firestore

我是 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/

相关文章:

ios - Facebook Graph API 共享链接

ios - SwiftUI NavigationLink 在 Xcode 11.4 模拟器中仍然损坏?

swift - 多个 UITextFields 和 textDidChangeNotification 通知

ios - Firestore iOS 文档快照 `createTime`

Android Firebase 上传图片错误的 URL(问题 : X-Goog-Upload-Comment header is missing)

ios - 识别调用模态视图的 View Controller

ios - 在用户键入 iOS 时检查用户名可用性

ios - swift ios 无法从堆栈中删除旧模型 viewcontroller

swift - 如何将0/1的二进制表示字符串转换为字符串?

javascript - Firestore 子集合删除文档中最旧的内容