У меня есть следующие проблемы с моими правилами безопасности:
У меня есть классные комнаты для сбора, а внутри есть классные документы. Сначала, когда я проверяю if classroo.owner == request.auth.uid
, он всегда возвращает false, чтобы разрешить создание / обновление / удаление, но когда я делаю это с if request.auth.uid in classroomData().userList
, он прекрасно работает, чтобы разрешить чтение.
Я пытался использовать эти правила безопасности, также обратите внимание нате, которые закомментированы -
service cloud.firestore {
match /databases/{database}/documents {
function isSignedIn() {
return request.auth != null;
}
match /classrooms/{classroom} {
allow read: if request.auth.uid in classroomData().userList;
allow update, delete,create: if classroomData().owner == request.auth.uid;
function classroomData() {
return get(/databases/$(database)/documents/classrooms/$(classroom)).data
}
// match /classrooms/{classroom}/tasks/{taskId} {
// allow read: if request.auth.uid in classroomData().userList;
// allow update, delete,create: if parentDoc().owner == request.auth.uid;
// }
}
}
}
и коллекции -
https://i.stack.imgur.com/Bjh9W.png
В некоторых классах есть вспомогательная коллекция задач с документами, связанными с задачами, и я хочу, чтобы пользователине иметь возможности читать задачи / классную комнату, если они не являются частью родительской classroom.userList
, и не может удалять / писать / обновлять, если они не являются владельцем. Теперь моя проблема в том, что я не могу заставить свои правила безопасности работать ...