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

Primeiros passos com regras de segurança

Com as regras de segurança do 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 mantenham os usuários disponíveis, você precisa usar o Firebase Authentication com as regras de segurança do Firestore.

Versão 2 das regras de segurança

A versão 2 das regras de segurança do 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 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 Firestore para 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 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 todas

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

// 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, continue consultando o guia sobre Como estruturar regras de segurança.

Como testar regras

O 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 Firestore do 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 Firestore no seu app para dispositivos móveis, você precisará implantar regras de segurança. É possível implantar regras no Console do Firebase ou usar a Firebase CLI.

As atualizações nas regras de segurança do Firestore podem levar até um minuto para afetar as 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 Firestore no Console do Firebase.

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

Usar a CLI do Firebase

Também é possível implantar regras usando a Firebase CLI. O uso da CLI permite manter as regras sob controle de versão com o código do aplicativo e implantar regras como parte do processo de implantaçã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

A seguir