Trying to grab all documents where array does not contain user uid.
However function keeps returning all documents... Am i missing something?
func grabDocuments() {
guard let userProfile = UserService.currentUserProfile else { return }
print(userProfile.uid)
Firestore.firestore().collection("all").whereField("group", notIn: [userProfile.uid])
.addSnapshotListener { (querySnapshot, err) in
if err == nil && querySnapshot != nil {
if querySnapshot!.documents.count > 0 {
self.dataExists()
for document in querySnapshot!.documents {
let data = document.data()
let group = data["group"] as? Array<String> ?? [""]
print("---------------------------")
print(group)
print("---------------------------")
}
}
}
}
}
printed output
liwIbfyZjUSVcXbhhxQUMR1fQ4p2
---------------------------
["RRPtSbWZTEYKgBVQbxpCJROOcQ33"]
---------------------------
---------------------------
["RRPtSbWZTEYKgBVQbxpCJROOcQ33"]
---------------------------
---------------------------
["RRPtSbWZTEYKgBVQbxpCJROOcQ33"]
---------------------------
---------------------------
["RRPtSbWZTEYKgBVQbxpCJROOcQ33"]
---------------------------
---------------------------
["RRPtSbWZTEYKgBVQbxpCJROOcQ33", "hl0RVRbfw4RmQAtSuIO5dTB6doF3", "liwIbfyZjUSVcXbhhxQUMR1fQ4p2"]
---------------------------
---------------------------
["hl0RVRbfw4RmQAtSuIO5dTB6doF3", "RRPtSbWZTEYKgBVQbxpCJROOcQ33", "liwIbfyZjUSVcXbhhxQUMR1fQ4p2"]
---------------------------
Firestore documentation
https://firebase.google.com/docs/firestore/query-data/queries#in_not-in_and_array-contains-any
citiesRef.whereField("country", notIn: ["USA", "Japan"])
To be clear. Getting all documents where array does exists works as expected.
Firestore.firestore().collection("all").whereField("group", arrayContains: userProfile.uid)