获取我们在 Firebase 峰会上发布的所有信息,了解 Firebase 可如何帮助您加快应用开发速度并满怀信心地运行应用。了解详情

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

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 código de autorização e autenticação do lado do servidor.

As regras de segurança fornecem controle de acesso e validação de dados em um formato simples, mas expressivo. Para criar sistemas de acesso baseados em usuário e função que mantêm os dados de seus usuários seguros, você precisa usar o Firebase Authentication com Cloud Firestore Security Rules.

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 grupos de coleta . 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 declaraçõ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/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 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 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 no guia para estruturar regras de segurança para aprender como corresponder 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 Firebase console.

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.

Implantando regras

Antes de começar a usar o Cloud Firestore em seu aplicativo móvel, você precisará implantar regras de segurança. Você pode implantar regras no Firebase console 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 ouvintes. No entanto, pode levar até 10 minutos para propagar totalmente as alterações e afetar quaisquer ouvintes ativos.

Use o console do Firebase

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

Escreva suas regras no editor online e clique em Publicar .

Use a CLI do Firebase

Você também pode implantar regras usando o Firebase CLI . O uso da CLI permite que você mantenha suas regras sob controle de versão com o código do aplicativo e implemente regras como parte do 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

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

Próximos passos