Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

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 ótima experiência do usuário sem precisar gerenciar a infraestrutura ou escrever o código de autenticação e autorização do lado do servidor.

As regras de segurança fornecem controle de acesso e validação de dados em um formato simples e expressivo. Para criar sistemas de acesso baseados em usuários e papéis que mantenham os dados dos usuários seguros, você precisa usar o Firebase Authentication com as regras de segurança do Cloud Firestore.

Regras de segurança versão 2

A partir de maio de 2019, a versão 2 das regras de segurança do Cloud Firestore já está disponível. A versão 2 das regras altera o comportamento dos curingas recursivos {name=**} . Você deve usar a versão 2 se planeja usar consultas de grupo de coleção . Você deve aceitar a versão 2 fazendo rules_version = '2'; a primeira linha em suas regras de segurança:

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

Regras de escrita

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

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

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

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

Autorização necessá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 tudo

// 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. Continue com o guia para estruturar regras de segurança para saber como corresponder a caminhos de dados específicos e trabalhar com dados hierárquicos.

Regras de teste

O Cloud Firestore fornece um simulador de regras que você pode usar para testar seu conjunto de regras. Você pode acessar o simulador na guia Regras na seção Cloud Firestore do console do Firebase.

O simulador de regras permite simular leituras, gravações e exclusões autenticadas e não autenticadas. Ao simular uma solicitação autenticada, você pode criar e visualizar tokens de autenticação de vários provedores. As solicitações simuladas são executadas no conjunto de regras em seu editor, não no conjunto de regras implantado atualmente.

Como implantar regras

Antes de começar a usar o Cloud Firestore em seu aplicativo para dispositivos móveis, você precisará implantar regras de segurança. Você pode implantar regras no console do Firebase ou usando a Firebase CLI.

As atualizações das regras de segurança do Cloud Firestore podem levar até um minuto para afetar novas consultas e listeners. No entanto, pode levar até 10 minutos para propagar totalmente as alterações e afetar os ouvintes ativos.

Usar o console do Firebase

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

Escreva suas regras no editor online e clique em Publicar .

Usar a CLI do Firebase

Você também pode implantar regras usando a Firebase CLI . O uso da CLI permite que você mantenha suas regras sob controle de versão com seu código de aplicativo e implemente regras como parte de seu processo de implementação existente.

// 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

Melhore a segurança do Cloud Storage

Seus aplicativos se beneficiarão dos recursos robustos de banco de dados do Cloud Firestore e dos recursos de armazenamento e gerenciamento de arquivos do Cloud Storage. Usados ​​juntos, esses produtos também fornecem reforço da segurança do aplicativo, pois o Cloud Firestore pode capturar os requisitos de autorização que podem ser usados ​​pelas regras de segurança do Firebase para ambos os produtos. Para saber mais, consulte o guia do Cloud Storage .

Próximos passos