【问题标题】:Swift firebase firestore querySwift firebase firestore 查询
【发布时间】:2018-11-17 14:11:13
【问题描述】:
var selectedColor: String = "pink"
var selectedScore: String = "-"

let pillsRef = db.collection("pills")
    pillsRef
      .whereField("pillColor", isEqualTo: "pink")
      .whereField("pillColor", isEqualTo: "blue")
      .getDocuments() { (querySnapshot, err) in

    if let err = err {
        print("Error getting documents: \(err)")
    } else {
        print("\(document.documentID) => \(document.data())")
    }
}

我对此代码有疑问。

如果我编译这段代码,就会出错。

我想检索包含“粉红色”或“蓝色”的数据。

我该怎么做?

【问题讨论】:

    标签: swift firebase google-cloud-firestore


    【解决方案1】:

    Cloud Firestore 不支持:逻辑 OR 查询。在这种情况下,您应该为每个 OR 条件创建一个单独的查询,并在您的应用中合并查询结果。

    所以你需要先查询第一种颜色,然后再查询第二种颜色,然后合并结果:

    pillsRef
      .whereField("pillColor", isEqualTo: "pink")
      .getDocuments() { (document, err) in
          if let err = err {
              print("Error getting documents: \(err)")
          } else {
              print("\(document.documentID) => \(document.data())")
              pillsRef.whereField("pillColor", isEqualTo: "blue").getDocuments() { (document2, err2) in
                 if let err2 = err2 {
                    print("Error getting documents: \(err)")
                 } else {
                   // here you get your data for blue color 
                   print("\(document2.documentID) => \(document2.data())")
                 }
             }
         }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-25
      • 1970-01-01
      • 2018-03-05
      • 2018-05-18
      • 2019-06-15
      • 2021-11-13
      相关资源
      最近更新 更多