Comando de IA: escrever regras de segurança do Firebase

Esse comando pode ajudar seu assistente de IA, como o Gemini CLI, a gerar e refinar Firebase Security Rules para seu app. Use o comando para criar Rules para casos de uso comuns, como conceder acesso específico do usuário, implementar permissões baseadas em papéis e validar dados.

Esse comando se concentra na geração de Rules para:

  • Cloud Firestore: protege coleções e documentos com base na lógica do seu app.
  • Cloud Storage for Firebase: valida as permissões de acesso aos arquivos armazenados.

Usar esse comando pode ajudar você a começar com uma postura de segurança forte, mas sempre teste seu Rules antes de implantar na produção. Para mais informações sobre como testar o Rules, consulte Começar a usar o Firebase Security Rules: testar suas regras.

Pré-requisitos

Limitações

Estamos trabalhando para melhorar essa experiência, então essa lista de limitações pode mudar. Volte a esta página para ver se há novidades.

  • O Gemini no Firebase não consegue gerar Firebase Security Rules. Use um assistente de IA alternativo, como o Gemini CLI.
  • O comando foi criado para gerar Firebase Security Rules para Cloud Firestore e Cloud Storage for Firebase. Ele ainda não é capaz de gerar Rules para Firebase Realtime Database.
  • Firebase Security Rules não são chamados ao acessar seu banco de dados ou bucket de um servidor ou outro ambiente de back-end, como ao usar o Firebase Admin SDK. Se você estiver usando o Admin SDK, será responsável por gerenciar a autorização e a validação de dados no código do back-end.

Usar o comando

  1. Use a extensão experimental Gemini CLI para Firebase Security Rules e gere suas regras e testes.

    Essa extensão analisa seu código-fonte para ajudar a identificar esquemas de dados e padrões de acesso para Cloud Firestore e Cloud Storage. Ele foi projetado para criar Rules com base no princípio de privilégio mínimo e tenta descobrir vulnerabilidades por simulações iterativas de "ataque". Para ajudar na verificação final, ele fornece um pacote de testes de unidade inicial usando @firebase/rules-unit-testing, permitindo que você verifique sua lógica de segurança localmente usando o Pacote de emuladores locais do Firebase.

    Para instalar e usar a extensão:

    1. Instalar a extensão Gemini CLI:

      gemini extensions install https://github.com/firebase/snippets-rules
      
    2. Abra Gemini CLI.

      gemini
      
    1. Na raiz do projeto, execute a extensão para gerar regras para o Cloud Firestore:

      /firebase-rules:firestore Generate rules using PROJECT ID PROJECT_ID
      

      Ou gere regras para Cloud Storage:

      /firebase-rules:storage Generate rules using PROJECT ID PROJECT_ID and BUCKET NAME BUCKET_NAME
      

    A extensão cria um diretório rules_test para Cloud Firestore ou um diretório storage_rules_test para Cloud Storage na raiz do projeto. Esse novo diretório contém o arquivo .rules gerado e um projeto Node.js com testes de unidade.

  2. Analise os resultados da validação e do teste de regras:

    • Validação de sintaxe: depois de gerar regras, o Gemini CLI valida automaticamente a sintaxe usando o comando firebase_validate_security_rules do servidor MCP do Firebase.
    • Testes de unidade: depois de validar a sintaxe, o Gemini CLI tenta executar os testes de unidade gerados usando o Firebase Local Emulator Suite. Para que os testes sejam executados, é necessário executar o Firebase Local Emulator Suite em um terminal separado.

    Se os testes não forem executados automaticamente, inicie o Firebase Local Emulator Suite em um terminal separado e use uma das seguintes opções para executar os testes:

    *   Instruct Gemini CLI to run tests:
        ```none
        Firebase Emulator Suite is running in a separate terminal. Please
        execute the tests.
        ```
    *   Run tests manually by following the instructions in the `README.md`
        file in the `rules_test` or `storage_rules_test` directory.
    
  3. Quando você estiver satisfeito com o resultado do Rules gerado, use o seguinte comando da CLI Firebase para implantar o Rules.

    Cloud Firestore

    firebase deploy --only firestore:rules

    Cloud Storage

    firebase deploy --only storage

Outros recursos

  • Para mais ajuda com sua postura de segurança, use a extensão de segurança para Gemini CLI, uma extensão de código aberto que analisa mudanças no código para identificar riscos de segurança e vulnerabilidades.