Извините.Я не могу сейчас комментировать, поэтому все, что я могу сделать, это написать ответ.
Мой опыт таков.
Убедитесь, что вы предоставляете доступ только к данным на основе потребностей.
Итак, начните без доступа к чему-либо и явно добавьте доступ, когда это необходимо.Любые разработчики сообщат вам или сами решат, когда вам понадобится доступ, и затем вы сможете добавить его для этой коллекции.Делая это в обратном направлении, когда все, что читают или читают аутентифицированные пользователи, никогда не определит, когда вы предоставили слишком много разрешений.
Например, если коллекция используется облачной функцией и ничто иное, как доступ к чтениюне требуется.
Так что явно добавьте разрешения по коллекции, а не для всего.
Если доступ для чтения требуется пользователям, которые не прошли проверку подлинности, то добавьте чтение, но если это необходимо только проверенным пользователямпользователей, затем сделайте его
allow read:if request.auth != null;
Если документ должен быть доступен только текущему аутентифицированному пользователю, ограничьте его этим пользователем, а не только всеми аутентифицированными пользователями.
allow read: if request.auth.uid == userId;
См.помощь по правилам пожарного депо] 1
Кроме того, правила также могут включать проверку данных.Это позволяет проверять длину, проверять значения и т. Д., А также разрешать ограничения, основанные на операции, выходящей за рамки простого чтения и записи.Например,
match /users/{userId} {
allow read, update, delete: if request.auth.uid == userId;
allow create: if request.auth.uid != null;
}
и
allow read: if resource.data.userType == 'reader';
Есть несколько хороших видео на эту тему, например, это
Видео по использованию правила безопасности пожарного депо