Когда я запускаю этот запрос
self.db.collection("strokedata").whereField("uid", isEqualTo: coachid!).addSnapshotListener { (querySnapshot, err) in
С этими правилами
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
function isSignedIn() {
return request.auth != null;
}
match /strokedata/{document} {
allow write: if isSignedIn() && document == request.auth.uid;
allow read: if document == request.auth.uid || request.auth.uid == resource.data.uid;
}
match /users/{document} {
allow create: if request.auth.uid != null;
allow read: if request.auth != null;
allow write: if document == request.auth.uid;
}
}
}
Код текста uid в resource.data.uid становится зеленым, и запрос работает.
Тем не менее, когда я запускаю этот запрос
self.db.collection("strokedata").whereField("coachuid", isEqualTo: coachid!).addSnapshotListener { (querySnapshot, err) in
С этими правилами он не работает, код coachuid не становится зеленым в правилах в этом случае.
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
function isSignedIn() {
return request.auth != null;
}
match /strokedata/{document} {
allow write: if isSignedIn() && document == request.auth.uid;
allow read: if document == request.auth.uid || request.auth.uid == resource.data.coachuid;
}
match /users/{document} {
allow create: if request.auth.uid != null;
allow read: if request.auth != null;
allow write: if document == request.auth.uid;
}
}
}
У меня есть кое-что, что работает, но мне любопытно, почему запрос coachuid не становится зеленым и правила каждый раз не выполняются.