As regras de segurança do Firebase fornecem proteção robusta e totalmente personalizável para seus dados no Cloud Firestore, no Realtime Database e no Cloud Storage. É fácil começar a usar Rules para proteger seus dados e app contra usuários maliciosos. Para isso, basta seguir as etapas deste guia.
Entender a linguagem das regras de segurança do Firebase
Antes de começar a criar regras de segurança, separe um tempo para analisar a linguagem específica delas nos produtos do Firebase que você está usando. O Realtime Database usa uma sintaxe semelhante ao JavaScript e uma estrutura JSON para o Rules.
Comece aprendendo a sintaxe principal da linguagem das regras de segurança do Firebase.
Configurar Authentication
Se você ainda não tiver adicionado o Firebase Authentication ao app, faça isso. O Firebase Authentication é compatível com muitos métodos comuns de autenticação e se integra às regras de segurança do Firebase 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 regras de segurança do Firebase e o Firebase Authentication.
Definir suas estruturas de dados e regras
Definir dados de segurança
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 Realtime Database, é 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.
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 exibe a versão mais recente implantada das regras de segurança do Firebase.
Para acessar suas regras no console do Firebase, selecione o projeto e, no painel de navegação à esquerda, clique em Realtime Database. 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 regras de segurança no console do Firebase, é possível usar o Firebase Rules Playground para validar rapidamente o comportamento. No entanto, recomendamos a realização de testes mais detalhados com o Local Emulator Suite 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 as regras de segurança do Firebase.