Как правило, нет.
Исключительно использование анонимной аутентификации создает препятствия для доступа к вашей базе данных и защищает ее от простых запросов на чтение, как если бы ваша база данных была полностью открыта, но вы должны сочетать это с правилами безопасности, которые ограничивают запросы, которые могут быть выполнены.
Предполагая, что мы начинаем с этих базовых правил:
// Allow read access on all documents to any user signed in to the application,
// and write access to only administrators
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read: if request.auth.uid != null;
allow write: if request.auth.token.isAdmin === true;
}
}
}
Чтобы ужесточить свои правила, сначала необходимо удалить подстановочный знак и заменить его фиксированным документом. пути.
// Allow read access on all documents at /posts/{postId} to any user signed in to the application,
// and write access to only administrators
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /posts/{postId} {
allow read: if request.auth.uid != null;
allow write: if request.auth.token.isAdmin === true;
}
}
}
или даже
// Allow read access on all documents at /posts/{postId} to any user signed in to the application,
// and write access to only administrators
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /posts/{postId} {
allow read: if request.auth.uid != null;
allow write: if request.auth.token.isAdmin === true;
// allow same permissions on subcollections of /posts/{postId}
match /{document=**} {
allow read: if request.auth.uid != null;
allow write: if request.auth.token.isAdmin === true;
}
}
}
}
Далее следует рассмотреть возможность добавления правил, ограничивающих размер запросов, выполняемых к вашей базе данных, с использованием гранулярного правила безопасности list
как описано в Securely query data
Документации Firebase.
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /posts/{postid} {
// Deny any query not limited to 10 or fewer documents
allow list: if request.auth != null
&& request.query.limit <= 10;
// Anyone can retrieve an individual post
allow get: if request.auth != null;
// Only an admin can write to posts
allow write: if request.auth.token.isAdmin === true;
}
}
}
В зависимости от того, как часто данные обновляются, вы также можете рассмотреть возможность хранения пакетов данных в Firebase Storage или вы можете даже обслуживать данные с Firebase Hosting, где они могут обслуживаться CDN вместо вашего приложения. * 102 3 *