Предотвратить чтение определенной коллекции - PullRequest
0 голосов
/ 26 мая 2019

У меня много коллекций для чтения, но им запрещено писать.У меня также есть одна коллекция, где чтение запрещено, но разрешено писать.Как это сделать правильно?Я перепробовал много способов правильно прописать правила.Официальная документация не решила мою проблему.

Он должен работать по этому принципу:

match /{document=**} {
      allow read: if true;
      allow write: if false;
    }
match /FOLDER/FOLDER {
      allow read: if false;
      allow write: if true;
    }

Но это не работает, потому что перекрывающиеся операторы соответствия.«В случае, когда несколько разрешающих выражений соответствуют запросу, доступ разрешается, если выполняется любое из условий» *

Пробовал также с exists и get.

Нетобщие поля между этими коллекциями.

Как это сделать правильно?

1 Ответ

1 голос
/ 26 мая 2019

Поскольку это правило предоставляет безусловный доступ на чтение всей вашей базе данных:

match /{document=**} {
  allow read: if true;
  allow write: if false;
}

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

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

match /{document=**} {
  allow read: if document[0] != "unreadable-collection";
  allow write: if false;
}
...