Я пытаюсь написать правило, позволяющее пользователю получать доступ только к тем документам, к которым он имеет доступ:
match /websites/{website} {
function isSignedIn() {
return request.auth.uid != null;
}
function isAuthorized(rsc) {
return request.auth.token[rsc.data.role] == true
}
function isAdmin() {
return request.auth.token.admin == true
}
allow read, write: if isSignedIn() && (isAuthorized(resource) || isAdmin());
}
Похоже, есть проблема с request.auth.token[rsc.data.role]
, но я не могу понять, в чем проблема. rsc.data.role
устанавливается как строка в базе данных, а мой пользователь в качестве токена в качестве логического значения.
Пример: website.role: 'editor'
и request.auth.token.editor: true
.
Вот скриншот документа, к которому я пытаюсь получить доступ:
Есть идеи?