Я пытаюсь защитить приложение, в котором пользователи могут управлять своими группами. Пользователи могут быть частью нескольких полос и, следовательно, могут иметь разные роли в зависимости от того, какую полосу они редактируют в настоящее время. Роль хранится на карте в документе Band.
Есть ли способ применить это к правилам пожарных? Так что функция getRole () будет работать не только для «бэндов», но и для других коллекций, содержащих поле idBand (например, «события»)
Моя настройка выглядит следующим образом:
![Firestore Setup](https://i.stack.imgur.com/uIHYi.png)
Я пытался сделать что-то вроде этого:
function getRole(){
return get(/databases/{database}/documents/bands/request.resource.data.idBand/members/$(request.auth.uid)).data.role
}
match /bands/{document=**} {
allow read;
allow write: if getRole() == 'OWNER';
}