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())")
}
}
我对此代码有疑问。
如果我编译这段代码,那将是错误的。
我要检索包含“粉红色”或“蓝色”的数据。
我该怎么做?
答案 0 :(得分:2)
Cloud Firestore不支持:逻辑或查询。在这种情况下,您应该为每个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())")
}
}
}