Comece a usar as regras de segurança do Cloud Firestore

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

As regras de segurança proporcionam controle de acesso e validação de dados em um formato simples, mas expressivo. Para criar sistemas de acesso baseados em usuários e funções que mantenham os dados dos usuários seguros, você precisa usar o Firebase Authentication com 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ê deverá usar a versão 2 se planejar usar consultas de grupo de coleta . Você deve optar pela 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

Você escreverá e gerenciará regras de segurança do Cloud Firestore adaptadas ao modelo de dados criado para o banco de dados padrão e cada banco de dados adicional em seu projeto.

Todas as regras de segurança do Cloud Firestore consistem em declarações 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 cliente móvel/web do Cloud Firestore é avaliada em relação às suas regras de segurança antes de ler ou gravar quaisquer dados. 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 estas regras sejam válidas, elas não são recomendadas para aplicações 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 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 de estruturação de regras de segurança para aprender como combinar 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 do seu editor, não no conjunto de regras atualmente implantado.

Implantando regras

Antes de começar a usar o Cloud Firestore no seu aplicativo móvel, você precisará implantar regras de segurança. Você pode implantar regras no Console do Firebase, usando a CLI do Firebase ou com a API REST de gerenciamento do Cloud Firestore.

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

Usar o console do Firebase

Para configurar e implantar seu primeiro conjunto de regras, para o banco de dados padrão do seu projeto, abra a guia Regras na seção Cloud Firestore do 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 . Usar a CLI permite manter suas regras sob controle de versão com o código do seu 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 rules for all configured databases
firebase deploy --only firestore

Aumente 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 ​​em conjunto, esses produtos também reforçam a segurança do aplicativo, já que o Cloud Firestore pode capturar requisitos de autorização utilizáveis ​​pelas regras de segurança do Firebase para ambos os produtos. Para obter mais informações, consulte o guia do Cloud Storage .

Próximos passos