Отключить правило чтения только для одного узла в базе данных реального времени firebase - PullRequest
0 голосов
/ 09 мая 2019

У меня есть база данных Firebase в реальном времени, подключенная к моему проекту angular 6, правило записи в моей базе данных установлено на false, так как я использую функции для добавления, редактирования, удаления чего-либо в базе данных и правила в правилеВкладка выглядит так:

  "rules": {
    ".read": "auth != null",
    ".write": false,
  }
}

Поэтому мой вопрос: как я могу отключить чтение, только для одного узла можно назвать его «компании», потому что мне нужно повысить его безопасность и отправить запрос на чтение, также используя функциитолько для этого узла.PS: у меня есть много узлов, кроме «узла компаний»
database structure

1 Ответ

0 голосов
/ 09 мая 2019

Как только узлу был предоставлен доступ для чтения, это не может быть отменено более поздним правилом. Из документации :

{
  "rules": {
    "foo": {
      ".read": true,
      ".write": false
    }
  }
}

Каскадные правила .read и .write, поэтому этот набор правил предоставляет доступ на чтение любые данные в пути / foo /, а также любые более глубокие пути, такие как / Foo / бар / Baz. Обратите внимание, что .read и .write правила меньше в база данных переопределяет более глубокие правила , поэтому доступ для чтения к / foo / bar / baz будет по-прежнему предоставляется в этом примере, даже если правило на пути / foo / bar / baz оценивается как ложное.

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

Вам нужно будет расширить свои правила, чтобы разрешить доступ только к тем узлам, которые вы хотите, чтобы пользователь прочитал, и опустить дочерние элементы, к которым вы хотите запретить доступ.

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