As Firebase Security Rules fornecem proteção robusta e completamente personalizável para seus dados no Cloud Firestore, Realtime Database e Cloud Storage. É fácil começar a usar as Rules para proteger seus dados e app contra usuários maliciosos. Basta seguir as etapas deste guia.
Entender a linguagem das Firebase Security Rules
Antes de começar a escrever regras, separe um tempo para analisar a linguagem específica Firebase Security Rules nos produtos do Firebase que você está usando.
O Realtime Database usa uma sintaxe semelhante ao JavaScript e uma estrutura JSON para o
Rules. Como alternativa, Cloud Firestore e Cloud Storage usam um superconjunto
do Common Expression Language (CEL) que depende de instruções match
e allow
que determinam uma condição de acesso em um caminho definido.
Saiba mais sobre o idioma Firebase Security Rules.
Configurar Authentication
Se você ainda não fez isso, identifique seus usuários com o Firebase Authentication. O Firebase Authentication é compatível com muitos métodos de autenticação comuns e se integra ao Firebase Security Rules para fornecer recursos abrangentes de verificação.
É possível configurar outras informações de autenticação que sejam personalizadas para seu aplicativo.
Saiba mais sobre as Firebase Security Rules e o Firebase Authentication.
Definir suas estruturas de dados e regras
O modo como você estrutura os dados pode afetar a maneira como as regras são estruturadas e implementadas. Ao definir as estruturas de dados, avalie as implicações que elas podem ter na estrutura das Rules.
Por exemplo, no Cloud Firestore, é possível incluir um campo que represente um papel específico para cada usuário. Dessa forma, suas regras poderão ler esse campo e usá-lo para conceder acesso com base em papéis.
Ao definir as arquiteturas de dados e regras, lembre que, se qualquer regra conceder acesso a um conjunto de dados, a Firebase Security Rules também vai conceder acesso a ele. Em outras palavras, não será possível refinar o acesso em um subcaminho se você tiver concedido acesso em um nível mais alto na hierarquia de dados.
Acessar as regras
Para ver as Rules atuais, use a CLI do Firebase ou o console do Firebase. Lembre de editar as regras usando o mesmo método de maneira consistente para evitar substituir as atualizações por engano. Caso você não tenha certeza de que as regras definidas localmente correspondem às atualizações mais recentes, saiba que o console do Firebase sempre mostra a versão implantada mais recentemente das Firebase Security Rules.
Para acessar as regras no console do Firebase, selecione o projeto e navegue até Realtime Database, Cloud Firestore ou Storage. Clique em Regras quando estiver no banco de dados ou no bucket de armazenamento correto.
Para acessar suas regras pela CLI do Firebase, acesse o arquivo de regras mencionado no seu arquivo firebase.json.
Escrever regras básicas
Enquanto você desenvolve seu app e entende as Rules, tente implementar algumas regras básicas de segurança, incluindo os seguintes casos de uso:
- Somente o proprietário do conteúdo: restringe o acesso ao conteúdo por usuário.
- Acesso misto: restringe o acesso de gravação por usuário, mas permite acesso de leitura público.
- Acesso com base em atributos: restringe o acesso a um grupo ou tipo de usuário.
Testar suas regras
Para validar totalmente o comportamento do app e verificar as configurações de Firebase Security Rules
, use o Emulador do Firebase para executar e automatizar testes
de unidade em um ambiente local.
Ao configurar as Firebase Security Rules no console do Firebase, use o simulador de regras do Firebase para validar rapidamente o comportamento. No entanto, recomendamos que você faça testes mais detalhados com o emulador antes de implantar suas alterações em produção.
Implantar regras
Use o console do Firebase ou a CLI do Firebase para implantar suas regras na produção. Siga as etapas descritas em Gerenciar e implantar as Firebase Security Rules.