As regras de segurança do Firebase fornecem proteção robusta e totalmente personalizável para seus dados no Cloud Firestore, Realtime Database e Cloud Storage. Você pode facilmente começar a usar as regras seguindo as etapas deste guia, protegendo seus dados e seu aplicativo contra usuários mal-intencionados.
Entenda a linguagem das regras de segurança do Firebase
Antes de começar a escrever regras, vale a pena reservar algum tempo para revisar a linguagem específica das regras de segurança do Firebase para os produtos Firebase que você está usando. O Realtime Database aproveita uma sintaxe semelhante ao JavaScript e uma estrutura JSON para suas regras. Como alternativa, o Cloud Firestore e o Cloud Storage aproveitam um superconjunto da Common Expression Language (CEL) que depende de instruções match
e allow
que definem uma condição para acesso em um caminho definido.
Saiba mais sobre a linguagem das regras de segurança do Firebase .
Configurar autenticação
Caso ainda não tenha feito isso, identifique seus usuários com o Firebase Authentication . O Firebase Authentication oferece suporte a muitos métodos de autenticação comuns e integra-se às regras de segurança do Firebase para fornecer recursos de verificação abrangentes.
Você pode configurar informações de autenticação personalizadas adicionais para seu aplicativo.
Saiba mais sobre as regras de segurança do Firebase e o Firebase Authentication .
Defina suas estruturas de dados e regras
A maneira como você estrutura seus dados pode afetar a maneira como você estrutura e implementa suas regras. Ao definir suas estruturas de dados, considere as implicações que elas podem ter na estrutura de regras.
Por exemplo, no Cloud Firestore, talvez você queira incluir um campo que indique uma função específica para cada usuário. Então, suas regras poderão ler esse campo e usá-lo para conceder acesso baseado em função.
Ao definir suas arquiteturas de dados e regras, lembre-se de que, se alguma regra conceder acesso a um conjunto de dados, as regras de segurança do Firebase concederão acesso a esse conjunto de dados. Em outras palavras, você não poderá refinar o acesso em um subcaminho se tiver concedido acesso em um nível superior na sua hierarquia de dados.
Acesse suas regras
Para visualizar suas regras existentes, use a CLI do Firebase ou o console do Firebase. Certifique-se de editar suas regras usando o mesmo método, de forma consistente, para evitar substituir atualizações por engano. Se você não tiver certeza se suas regras definidas localmente refletem as atualizações mais recentes, o Console do Firebase sempre mostrará a versão implantada mais recentemente das suas regras de segurança do Firebase.
Para acessar suas regras no console do Firebase , selecione seu projeto e navegue até Realtime Database , Cloud Firestore ou Storage . Clique em Regras quando estiver no banco de dados ou bucket de armazenamento correto.
Para acessar suas regras na CLI do Firebase, acesse o arquivo de regras anotado em seu arquivo firebase.json .
Escreva regras básicas
À medida que você desenvolve seu aplicativo e entende as regras, tente implementar algumas regras de segurança básicas , incluindo os seguintes casos de uso:
- Somente proprietário do conteúdo: restrinja o acesso ao conteúdo por usuário.
- Acesso misto: Restringe o acesso de gravação por usuário, mas permite acesso público de leitura.
- Acesso baseado em atributos: restrinja o acesso a um grupo ou tipo de usuário.
Teste suas regras
Para validar totalmente o comportamento do seu aplicativo e verificar as regras de segurança do Firebase
configurações, use o Firebase Emulator para executar e automatizar testes de unidade em um ambiente local.
Se estiver configurando suas regras de segurança do Firebase no Console do Firebase, você poderá usar o Simulador de regras do Firebase para validar rapidamente o comportamento. No entanto, recomendamos testes mais completos com o Firebase Emulator antes de implantar as alterações na 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 regras de segurança do Firebase .