Firebase: облачные правила firestore: разрешение запрещено - PullRequest
0 голосов
/ 23 октября 2018

В моей коллекции /users/ определено следующее правило доступа:

  allow read: if isCurrentUser(userId) || isDoctor() || isAdmin();
  allow write: if (isCurrentUser(userId) && !isModifyingPermissions() );

  function isModifyingPermissions(){
    return request.resource.data.keys().hasAny(["permissions"]);
  }

Документ в коллекции users имеет ряд свойств:

  • name
  • электронная почта
  • права доступа
  • ...

Проверка:

  • выполнить неразрушающее обновление подключенногосоответствующий документ пользователя
  • myDocument.update({name: 'Hello Stackoverflow'});

Наблюдаемое поведение:

  • Если у существующего ресурса есть свойство "permissions", обновление будет отклонено
  • Если существующий ресурс не имеет свойства "permissions", тогда обновление разрешено

Ожидаемое поведение: - если запрошенное обновление содержит свойство "permissions", тогдав обновлении отказано - что бы ни содержал существующий объект, разрешите обновление, если оно не содержит свойства "permissions".

Я использую Angular5 (Ionic3) с Angularfire.

Мои ожидания неверны?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...