Firebase Security Rules

Use nossas regras de segurança flexíveis e extensíveis do Firebase para proteger seus dados no Cloud Firestore, no Firebase Realtime Database e no Cloud Storage.

As Firebase Security Rules protegem seus dados contra usuários mal-intencionados. É possível criar regras simples ou complexas que protejam os dados do seu aplicativo com o nível de granularidade necessário.

O Firebase Security Rules usa linguagens de configuração extensível e flexível para definir quais dados os usuários podem acessar para Realtime Database, Cloud Firestore e Cloud Storage. As Firebase Realtime Database Security Rules usam JSON nas definições de regras, e Cloud Firestore Security Rules e Firebase Security Rules para Cloud Storage usam uma linguagem exclusiva desenvolvida para lidar com estruturas de regras mais complexas e específicas.

Saiba como configurar Rules para os produtos específicos do Firebase usados no seu app e como o comportamento de Rules varia nos diferentes produtos do Firebase.

Começar

Principais recursos

Flexibilidade Escreva regras personalizadas que façam sentido para a estrutura e o comportamento do seu aplicativo. Rules utilizam linguagens que permitem usar dos seus dados para autorizar o acesso.
Granularidade Suas regras podem ser tão amplas ou tão específicas quanto necessário.
Segurança independente Como as Rules são definidas fora do aplicativo (no console do Firebase ou na Firebase CLI), os clientes não são responsáveis pela aplicação das medidas de segurança, os bugs não comprometem os dados e as informações permanecem protegidas.

Como elas funcionam?

O Firebase Security Rules faz a correspondência de um padrão com os caminhos do banco de dados e, em seguida, aplica condições personalizadas para permitir o acesso aos dados nesses caminhos. Todas as Rules nos produtos do Firebase têm um componente de correspondência de caminho e uma declaração condicional que permite acesso de leitura ou gravação. É necessário definir Rules para cada produto do Firebase usado no aplicativo.

Para Cloud Firestore e Cloud Storage, Rules use a seguinte sintaxe:

service <<name>> {
  // Match the resource path.
  match <<path>> {
    // Allow the request if the following conditions are true.
    allow <<methods>> : if <<condition>>
  }
}

Para Realtime Database, o Rules baseado em JSON usa a seguinte sintaxe:

{
  "rules": {
    "<<path>>": {
    // Allow the request if the condition for each method is true.
      ".read": <<condition>>,
      ".write": <<condition>>
    }
  }
}

As Rules são aplicadas como instruções OR, não como AND. Dessa forma, se várias regras corresponderem a um caminho e qualquer uma das condições correspondentes conceder acesso, as Rules concederão acesso aos dados nesse caminho. Portanto, se uma regra ampla conceder acesso a dados, não será possível restringi-la com uma regra mais específica. No entanto, é possível evitar esse problema. Basta verificar se as Rules não se sobrepõem em excesso. A flag Firebase Security Rules se sobrepõe aos seus caminhos correspondentes como avisos do compilador.

O Firebase Security Rules também pode usar Authentication para conceder permissões com base em usuários, e as condições definidas podem ser muito básicas ou incrivelmente complexas. Saiba mais sobre a linguagem e o comportamento do Rules antes de começar a escrever Rules.

Caminho de implementação

Integrar os SDKs do produto Configure Cloud Firestore, Cloud Storage ou Realtime Database para seu app.
Escrever o Firebase Security Rules Saiba mais sobre como as Rules funcionam e configure algumas Rules básicas.
Testar o Firebase Security Rules Use os emuladores Realtime Database e Cloud Firestore para testar o comportamento do seu app e validar as regras antes de implantá-las em produção.
Implante o tipo de projeto Firebase Security Rules Use o console do Firebase ou a CLI do Firebase para implantar suas regras na produção.

Próximas etapas