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. 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 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.