Могу ли я добавить правила безопасности для коллекций верхнего уровня в Firestore? - PullRequest
0 голосов
/ 26 марта 2020

Как заблокировать доступ к коллекциям верхнего уровня? Я хочу запретить людям перечислять или удалять коллекции верхнего уровня.

Будет ли этот набор правил запрещать перечисление и удаление коллекций верхнего уровня, но разрешать полный доступ к документам?

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    allow get;
    allow list: if false;
    allow create;
    allow update;
    allow delete: if false;

    match /{document=**} {
      allow get;
      allow list;
      allow create;
      allow update;
      allow delete;
    }
  }
}

Похоже, это может на самом деле ничего не делать с коллекциями.

Кто-нибудь знает, как повлиять на коллекции верхнего уровня в правилах Firestore?

1 Ответ

1 голос
/ 26 марта 2020

Поскольку нет веб-интерфейсов, API-интерфейсов для мобильных устройств или REST API для составления списка, удаления или других операций с коллекциями по отдельности, вам не нужно беспокоиться об этом. Правила безопасности применяются только к операциям, которые вы можете выполнять с веб-клиентами, мобильными клиентами или клиентами REST (при аутентификации с использованием пользователя Firebase).

Кроме того, коллекции даже не являются сущностями в Firestore. Они больше похожи на единицы организации, которые обеспечивают индексацию для содержащихся документов. Все операции эффективно нацелены на документы в коллекциях. Вот почему правила безопасности заставляют вас выбирать документы с match блоками.

Еще одна вещь, на которую следует обратить внимание - при написании правил безопасности вы должны думать о них с точки зрения конкретных c запросов, которые вы хотите разрешить. Если вы представляете себе ситуацию, в которой не указан специфический c клиентский код для сопоставления, значит, вы не думаете о том, для чего предназначены правила безопасности.

...