O Firebase vai estar no Google I/O em 10 de maio! Inscreva-se agora

Primeiros passos com as regras de segurança do Cloud Firestore

Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

Com as regras de segurança do Cloud Firestore, você pode se concentrar em criar uma boa experiência do usuário, sem se preocupar em gerenciar a infraestrutura ou escrever um código de autenticação e autorização no servidor.

As regras de segurança oferecem controle de acesso e validação de dados em um formato simples, mas expressivo. Para criar sistemas de acesso baseados em usuários e em papéis que protegem os dados dos usuários, é necessário usar o Firebase Authentication com as regras de segurança do Cloud Firestore.

Versão 2 das regras de segurança

A versão 2 das regras de segurança do Cloud Firestore está disponível desde maio de 2019. A versão 2 das regras muda o comportamento dos caracteres curingas recorrentes {name=**}. Escolha essa versão se pretende usar consultas do grupo de coleções. Para ativar a versão 2, é preciso tornar rules_version = '2'; a primeira linha nas regras de segurança:

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {

Como escrever regras

Todas as regras de segurança do Cloud Firestore consistem em instruções match, que identificam documentos no seu banco de dados, e expressões allow, que controlam o acesso a esses documentos:

service cloud.firestore {
  match /databases/{database}/documents {
    match /<some_path>/ {
      allow read, write: if <some_condition>;
    }
  }
}

Toda solicitação de uma biblioteca de cliente da Web/para dispositivos móveis do Cloud Firestore para seu banco de dados é avaliada em relação às suas regras de segurança antes de ler ou gravar dados. Se as regras negarem o acesso a qualquer um dos caminhos de documento especificados, toda a solicitação falhará.

Veja abaixo alguns exemplos de conjuntos de regras básicos. Embora essas regras sejam válidas, elas não são recomendadas para aplicativos de produção:

Autenticação obrigatória

// Allow read/write access on all documents to any user signed in to the application
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if request.auth != null;
    }
  }
}

Negar todos

// Deny read/write access to all users under any conditions
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if false;
    }
  }
}

Permitir todos

// Allow read/write access to all users under any conditions
// Warning: **NEVER** use this rule set in production; it allows
// anyone to overwrite your entire database.
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if true;
    }
  }
}

O caminho {document=**} usado nos exemplos acima corresponde a qualquer documento em todo o banco de dados. Para aprender a combinar caminhos de dados específicos e trabalhar com dados hierárquicos, acesse o guia sobre Como estruturar regras de segurança.

Como testar regras

O Cloud Firestore fornece um simulador de regras que pode ser usado para testar o conjunto de regras. Para acessá-lo, vá até a guia Regras na seção do Cloud Firestore, no Console do Firebase.

Com essa ferramenta, você simula leituras, gravações e exclusões autenticadas e não autenticadas. Ao simular uma solicitação autenticada, é possível criar e visualizar tokens de autenticação de vários fornecedores. As solicitações simuladas são executadas no conjunto de regras do seu editor, e não no conjunto de regras implantando atualmente.

Como implantar regras

Antes de começar a usar o Cloud Firestore pelo seu aplicativo para dispositivos móveis, você precisará implantar regras de segurança. É possível implantar regras no Console do Firebase ou usar a CLI do Firebase.

As atualizações nas regras de segurança do Cloud Firestore levam até um minuto para fazer efeito nas novas consultas e listeners. No entanto, pode levar até 10 minutos para que as alterações sejam propagadas totalmente e afetem os listeners ativos.

Usar o Console do Firebase

Para configurar e implantar seu primeiro conjunto de regras, abra a guia Regras na seção do Cloud Firestore no Console do Firebase.

Escreva suas regras no editor on-line e clique em Publicar.

Usar a CLI do Firebase

Você também pode implantar regras usando a CLI do Firebase. Assim é possível manter as regras sob o controle de versões com o código do aplicativo e implementar regras como parte do processo de implantação atual.

// Set up Firestore in your project directory, creates a .rules file
firebase init firestore

// Edit the generated .rules file to your desired security rules
// ...

// Deploy your .rules file
firebase deploy --only firestore:rules

Reforçar a segurança do Cloud Storage

Os apps vão se beneficiar dos recursos robustos do Cloud Firestore para bancos de dados e dos recursos de armazenamento e gerenciamento de arquivos do Cloud Storage. Usados juntos, esses produtos também reforçam a segurança do app, já que o Cloud Firestore pode capturar requisitos de autorização que podem ser usados pelas regras de segurança do Firebase em ambos os produtos. Para mais informações, consulte o guia do Cloud Storage.

Próximas etapas