Confira tudo que foi anunciado no Firebase Summit e veja como usar o Firebase para acelerar o desenvolvimento de apps e executar os aplicativos com confiança. Saiba mais

Use o emulador de extensões para avaliar extensões

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

Antes de usar o emulador de extensões com seu aplicativo, certifique-se de entender o fluxo de trabalho geral do Firebase Local Emulator Suite e de instalar e configurar o Local Emulator Suite e revisar os comandos da CLI .

Este guia também pressupõe que você esteja familiarizado com as extensões do Firebase e como usá-las em seus aplicativos do Firebase .

O que posso fazer com o emulador de extensões?

Com o emulador de extensões, você pode instalar e gerenciar extensões em um ambiente local seguro e entender melhor seus recursos, minimizando os custos de cobrança. O emulador executa as funções da sua extensão localmente, incluindo funções acionadas por eventos em segundo plano usando os emuladores para Cloud Firestore, Realtime Database, Cloud Storage para Firebase, Authentication e Pub/Sub e funções acionadas por Eventarc implementadas no Cloud Functions v2.

Escolha um projeto do Firebase

O Firebase Local Emulator Suite emula produtos para um único projeto do Firebase.

Para selecionar o projeto a ser usado, antes de iniciar os emuladores, na CLI, execute firebase use em seu diretório de trabalho. Ou você pode passar o sinalizador --project para cada comando do emulador.

O Local Emulator Suite oferece suporte à emulação de projetos reais do Firebase e projetos de demonstração .

Tipo de projeto Características Usar com emuladores
Real

Um projeto real do Firebase é aquele que você criou e configurou (provavelmente por meio do console do Firebase).

Projetos reais têm recursos ativos, como instâncias de banco de dados, buckets de armazenamento, funções ou qualquer outro recurso que você configurou para esse projeto do Firebase.

Ao trabalhar com projetos reais do Firebase, você pode executar emuladores para qualquer um ou todos os produtos compatíveis.

Para qualquer produto que você não esteja emulando, seus aplicativos e código irão interagir com o recurso ativo (instância de banco de dados, bucket de armazenamento, função etc.).

Demonstração

Um projeto de demonstração do Firebase não tem configuração real do Firebase nem recursos ativos. Esses projetos geralmente são acessados ​​via codelabs ou outros tutoriais.

IDs de projeto para projetos de demonstração têm o prefixo demo- .

Ao trabalhar com projetos de demonstração do Firebase, seus aplicativos e código interagem apenas com emuladores . Se seu aplicativo tentar interagir com um recurso para o qual um emulador não está em execução, esse código falhará.

Recomendamos que você use projetos de demonstração sempre que possível. Os benefícios incluem:

  • Configuração mais fácil, pois você pode executar os emuladores sem nunca criar um projeto do Firebase
  • Segurança mais forte, pois se o seu código invocar acidentalmente recursos não emulados (produção), não há chance de alteração de dados, uso e cobrança
  • Melhor suporte offline, pois não há necessidade de acessar a internet para baixar sua configuração do SDK.

Instalar e avaliar uma extensão

Usar o emulador de extensões para avaliar se uma extensão atende às suas necessidades é simples.

Vamos supor que você esteja interessado na extensão Trigger Email ( firestore-send-email ) , embora o fluxo de trabalho a seguir abranja qualquer extensão. Quando executado com emuladores locais, o Trigger Email usará automaticamente os emuladores Cloud Firestore e Cloud Functions.

Para avaliar uma extensão localmente:

  1. Adicione a extensão ao manifesto de extensões locais. Um manifesto de extensões é uma lista de instâncias de extensão e suas configurações.

    firebase ext:install --local firebase/firestore-send-email

    A execução do comando acima solicitará que você configure a versão mais recente da extensão firebase/firestore-send-email e salve a configuração no manifesto, mas não implantará a configuração em seu projeto. Para saber mais sobre isso, consulte Gerenciar configuração de extensões com manifestos

  2. Inicie o Local Emulator Suite como faria normalmente.

    firebase emulators:start

Agora, usando a instância da extensão firestore-send-email listada em seu manifesto, o Local Emulator Suite fará o download do código-fonte dessa extensão para ~/.cache/firebase/extensions . Depois que as fontes forem baixadas, o Local Emulator Suite será iniciado e você poderá acionar qualquer uma das funções acionadas em segundo plano da extensão e conectar seu aplicativo ao Local Emulator Suite para testar sua integração com seu aplicativo.

Você pode usar a interface do usuário do Emulator Suite para adicionar dados à coleção de documentos de email e configurar outros recursos de back-end, conforme exigido pela extensão Trigger Email.

Como alternativa, para ambientes de teste não interativos, como fluxos de trabalho de integração contínua, você pode escrever um script de teste para avaliar a extensão que, entre outras etapas, preenche os dados necessários do Cloud Firestore e aciona as funções. Você então invocaria o Local Emulator Suite para executar seu script de teste:

firebase emulators:exec my-test.sh

Como o teste com o emulador de extensões difere da produção

O emulador de extensões permite testar extensões de uma maneira que corresponda à experiência de produção. No entanto, existem algumas diferenças em relação ao comportamento de produção.

Cloud IAM

O Firebase Emulator Suite não tenta replicar ou respeitar nenhum comportamento relacionado ao IAM para execução. Os emuladores seguem as regras de segurança do Firebase fornecidas, mas em situações em que o IAM normalmente seria usado, por exemplo, para definir o Cloud Functions invocando a conta de serviço e, portanto, as permissões, o emulador não é configurável e usará a conta disponível globalmente na máquina do desenvolvedor. semelhante a executar um script local diretamente.

Limitação do tipo de acionamento

Atualmente, o Firebase Local Emulator Suite é compatível apenas com funções acionadas por solicitação HTTP, acionadores de eventos personalizados Eventarc para extensões e funções acionadas por eventos em segundo plano para Cloud Firestore, Realtime Database, Cloud Storage para Firebase, Authentication e Pub/Sub. Para avaliar extensões que usam outros tipos de funções acionadas, você precisa instalar sua extensão em um projeto de teste do Firebase.

Qual o proximo?