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

Antes de usar o emulador as extensões com seu aplicativo, certifique-se de compreender o fluxo de trabalho global Firebase local Emulator Suíte , e que você instalar e configurar o emulador Suíte local e rever os seus comandos CLI .

Este guia também assume que você está familiarizado com Firebase extensões e como usá-los em seus aplicativos Firebase .

O que posso fazer com o emulador extensões?

Com o emulador Extensions, você pode instalar e gerenciar extensões em um ambiente local seguro e entender melhor as suas capacidades enquanto minimiza os custos de cobrança. O emulador é executado funções da sua extensão localmente, incluindo fundo funções acionados por evento usando os emuladores para Nuvem Firestore, em tempo real banco de dados, armazenamento em nuvem, Autenticação e Pub / Sub.

Escolha um projeto Firebase

O Firebase local Emulator Suíte emula produtos para um único projeto Firebase.

Para selecionar o projeto para o uso, antes de iniciar os emuladores, na CLI prazo firebase use em seu diretório de trabalho. Ou, você pode passar o --project bandeira para cada comando emulador.

Local Emulator Suite suporta emulação de projetos Firebase reais e de demonstração projetos.

tipo de projeto Recursos Uso com emuladores
Real

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

projetos reais têm recursos vivos, como instâncias de banco de dados, baldes de armazenamento, funções ou qualquer outro recurso que você criado para o projeto Firebase.

Quando se trabalha com projetos Firebase reais, você pode executar emuladores para qualquer um ou todos os produtos suportados.

Para quaisquer produtos que não estão emulando, seus aplicativos e código irá interagir com o recurso ao vivo (instância de banco de dados, balde de armazenamento, função, etc.).

programa demonstrativo

Um projeto Firebase demo tem nenhuma configuração Firebase real e sem recursos vivos. Estes projectos são normalmente acessado através codelabs ou outros tutoriais.

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

Ao trabalhar com demonstração projectos Firebase, seus aplicativos e interagir código com apenas emuladores. Se suas tentativas de aplicativos para interagir com um recurso para que um emulador não está em execução, que o código irá falhar.

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

  • Configuração mais fácil, já que você pode executar os emuladores sem nunca criar um projeto Firebase
  • segurança mais forte, uma vez que se o seu código invoca acidentalmente recursos (produção) não emulado, não há nenhuma possibilidade de alteração de dados, uso e faturamento
  • Melhor suporte offline, já que não há necessidade de acesso a internet para baixar a configuração do SDK.

Instalar e avaliar uma extensão

Usando emulador as extensões para avaliar se uma extensão atenda às suas necessidades é simples.

Vamos supor que você está interessado no Email Gatilho ( firestore-send-email ) de extensão , embora o fluxo de trabalho cobre qualquer extensão seguinte. Quando executado com emuladores locais, Gatilho Email irá automaticamente fazer uso da nuvem firestore e nuvem Funções emuladores.

Para avaliar a extensão localmente:

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

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

    Executando o comando acima irá pedir-lhe para configurar a versão mais recente do firebase/firestore-send-email extensão e salve a configuração para o manifesto, mas não vai implantar a configuração para seu projeto. Para saber mais sobre isso, consulte Gerenciar configuração de extensões com manifesta

  2. Comece o local Emulator Suite como faria normalmente.

    firebase emulators:start

Agora, usando o firestore-send-email instância extensão listado no seu manifesto, o emulador Suíte local irá baixar o código fonte dessa extensão para ~/.cache/firebase/extensions . Uma vez soures foram baixados, o emulador Suíte local vai começar e você vai ser capaz de desencadear qualquer um fundo desencadeada funções da extensão e conecte seu aplicativo para o emulador Suíte local para testar a sua integração com o aplicativo.

Você pode usar o emulador Suíte UI para adicionar dados para a coleção de documentos de e-mail e configurar outros recursos de back-end, como exigido pelo gatilho extensão mail.

Alternativamente, para ambientes de teste não-interativas, como fluxos de trabalho de integração contínua, você pode escrever um script de teste para avaliar a extensão que, entre outras medidas, preenche necessárias funções de dados e aciona Nuvem firestore. Você, então, invocar o emulador Suíte local para executar o script de teste:

firebase emulators:exec my-test.sh

Como testar com as extensões do emulador difere de produção

O emulador Extensions permite extensões de teste de uma forma que se aproxima a experiência de produção. No entanto, existem algumas diferenças de comportamento produção.

nuvem IAM

faz o Firebase Emulator Suite não tentar replicar ou respeitar qualquer comportamento IAM-relacionado para execução. Emuladores aderir às regras de segurança Firebase fornecido, mas em situações onde IAM normalmente seria usado, por exemplo, para definir funções Nuvem invocando conta de serviço e, portanto, as permissões, o emulador não é configurável e vai usar a conta globalmente disponíveis na sua máquina do desenvolvedor, semelhante à execução de um script local diretamente.

Desencadeando limitação tipo

Atualmente, o Firebase local Emulator Suíte só suporta HTTP funções acionada por pedido e funções acionados por evento fundo para Cloud Firestore, em tempo real banco de dados, armazenamento em nuvem, Autenticação e Pub / Sub. Para avaliar as extensões que usam outros tipos de funções acionadas, você precisa instalar a sua extensão em um projeto Firebase teste.

Qual o proximo?