Динамический auth.token на основе resource.data - PullRequest
0 голосов
/ 18 января 2019

Я пытаюсь написать правило, позволяющее пользователю получать доступ только к тем документам, к которым он имеет доступ:

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.

Вот скриншот документа, к которому я пытаюсь получить доступ: enter image description here

Есть идеи?

...