Hallo, ich versuche, einen Filter über eine Abfrage hinzufügen, aber es funktioniert nicht. Es verursacht unnötige Wiederholungen im Code. Kann mir jemand helfen?Firebase Firestore mehrere Abfragen
Gibt es eine Möglichkeit, mehr .whereField zu einer vorhandenen Ref hinzufügen?
Danke! William
var usersRef:Query
if (DAgeMin == DAgeMax) {
if (DGender == "Both") {
usersRef = Firestore.firestore().collection("users")
.whereField("AccountCompleted", isEqualTo: true)
.whereField("Banned", isEqualTo: 0)
.whereField("Age", isEqualTo: DAgeMin as Any)
// usersRef.limit(to: 1)
} else {
usersRef = Firestore.firestore().collection("users")
.whereField("AccountCompleted", isEqualTo: true)
.whereField("Banned", isEqualTo: 0)
.whereField("Gender", isEqualTo: DGender as Any)
.whereField("Age", isEqualTo: DAgeMin as Any)
// usersRef.limit(to: 1)
}
} else {
if (DGender == "Both") {
usersRef = Firestore.firestore().collection("users")
// Not working, filters aren't being applied
usersRef
.whereField("AccountCompleted", isEqualTo: true)
.whereField("Banned", isEqualTo: 0)
.whereField("Age", isGreaterThanOrEqualTo: DAgeMin as Any)
.whereField("Age", isLessThanOrEqualTo: DAgeMax as Any)
// usersRef.limit(to: 1)
} else {
usersRef = Firestore.firestore().collection("users")
.whereField("AccountCompleted", isEqualTo: true)
.whereField("Banned", isEqualTo: 0)
.whereField("Gender", isEqualTo: DGender as Any)
.whereField("Age", isGreaterThanOrEqualTo: DAgeMin as Any)
.whereField("Age", isLessThanOrEqualTo: DAgeMax as Any)
// usersRef.limit(to: 1)
}
}
// How can I apply this filter to all the usersRef, without putting it after each "block"
usersRef.limit(to: 1)
usersRef.getDocuments() { (querySnapshot, err) in
Wohoooo setzen müssen! Genau das, was ich brauchte, danke! –