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 Cloud Storage utiliza um superconjunto da Common Expression Language (CEL) que depende de instruções match
e allow
que determinam uma condição para acesso em um caminho definido.
Comece aprendendo a sintaxe principal da linguagem das Firebase Security Rules.
Configurar Authentication
Se ainda não fez isso, adicione o Firebase Authentication ao seu app. O Firebase Authentication é compatível com muitos métodos de autenticação comuns e se integra às 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 Storage, é uma boa ideia 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. Também é possível criar um banco de dados do Cloud Firestore, armazenar critérios de acesso em documentos do Cloud Firestore e acessá-los pelas Cloud Storage Security Rules.
Ao definir as arquiteturas de dados e regras, lembre que as regras são aplicadas em cascata ou não dependendo do seu produto. Com o Realtime Database, as regras funcionam de cima para baixo, com regras em níveis menos profundos que substituem regras de níveis mais profundos. Se uma regra conceder permissões de leitura ou gravação em um caminho específico, ela também vai conceder acesso a todos os nós filhos nesse caminho. Por outro lado, com o Cloud Firestore e o Cloud Storage, as regras se aplicam apenas aos níveis especificados da hierarquia de dados, e você escreve regras explícitas para controlar o acesso a níveis diferentes.
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 suas regras pelo console do Firebase, selecione seu projeto e, no painel de navegação à esquerda, clique em Storage. Clique em Rules quando estiver no banco de dados ou 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
Conforme você desenvolve seu app e entende as Rules, tente implementar as Rules para lidar com alguns casos uso básicos, incluindo estes:
- 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
Ao configurar as Firebase Security Rules no console do Firebase, use o Firebase Rules Playground para validar rapidamente o comportamento. No entanto, recomendamos testes mais detalhados com o Local Emulator Suite antes de implantar suas 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 as Firebase Security Rules.