O Google tem o compromisso de promover a igualdade racial para as comunidades negras. Saiba como.

Executar funções localmente

A CLI do Firebase inclui um emulador do Cloud Functions que pode simular os seguintes tipos de função:

  • Funções HTTPS
  • Funções chamáveis
  • Funções em segundo plano acionadas pelo Authentication, Realtime Database, Cloud Firestore e Cloud Pub/Sub.

Execute funções localmente para testá-las antes da implantação na produção.

Instalar a CLI do Firebase

Para usar o emulador do Cloud Functions, primeiro instale a CLI do Firebase:

npm install -g firebase-tools

Para usar o emulador local, suas funções do Cloud Functions precisam dos requisitos a seguir:

  • firebase-admin versão 8.0.0 ou superior.
  • firebase-functions versão 3.0.0 ou superior.

Configurar credenciais de administrador (opcional)

Se você quiser que seus testes de funções interajam com outras APIs do Firebase e do Google por meio do SDK Admin do Firebase, talvez seja necessário configurar credenciais de administrador.

  • Os gatilhos do Cloud Firestore e do Realtime Database já têm as credenciais necessárias e não requerem configuração adicional.
  • Para todas as outras APIs, incluindo as APIs do Firebase (como Authentication e FCM) ou APIs do Google (como a Cloud Translation ou Cloud Speech), será necessário concluir as etapas de configuração descritas nesta seção. Isso se aplicará se você estiver usando o shell de funções ou o firebase emulators:start.

Se quiser configurar credenciais de administrador para funções emuladas:

  1. Abra o painel de contas de serviço do Console do Google Cloud.
  2. Verifique se a conta de serviço padrão do App Engine está selecionada e use o menu de opções à direita para selecionar Criar chave.
  3. Selecione JSON para a opção do tipo de chave e clique em Criar.
  4. Defina suas credenciais padrão do Google para apontar para a chave salva:

    Unix

    $ export GOOGLE_APPLICATION_CREDENTIALS="path/to/key.json"
    
    $ firebase emulators:start
    

    Windows

    $ set GOOGLE_APPLICATION_CREDENTIALS=path\to\key.json
    
    $ firebase emulators:start
    

Depois de concluir essas etapas, seus testes de funções poderão acessar as APIs do Firebase e do Google usando o SDK Admin. Por exemplo, ao testar um gatilho Authentication a função emulada poderá chamar admin.auth().getUserByEmail(email).

Definir a configuração de funções (opcional)

Se você estiver usando variáveis de configuração de funções personalizadas, primeiro execute o comando para receber a configuração personalizada (execute isso no diretório functions) no ambiente local:

firebase functions:config:get > .runtimeconfig.json
# If using Windows PowerShell, replace the above with:
# firebase functions:config:get | ac .runtimeconfig.json

Executar o pacote do emulador

Para executar o emulador do Cloud Functions, use o comando emulators:start:

firebase emulators:start

O comando emulators:start iniciará os emuladores para o Cloud Functions, Cloud Firestore, Realtime Database e Firebase Hosting com base nos produtos que você inicializou no seu projeto local usando firebase init. Para iniciar um emulador específico, use a sinalização --only:

firebase emulators:start --only functions

Para executar um conjunto de testes ou um script de teste após a inicialização dos emuladores, use o comando emulators:exec:

firebase emulators:exec "./my-test.sh"

Instrumentar o app para se comunicar com os emuladores

Para instrumentar seu app a interagir com os emuladores, pode ser necessário fazer outras configurações.

Instrumentar o app para funções chamáveis

Se as atividades de teste e protótipo envolverem funções de back-end chamáveis, configure a interação com o emulador do Cloud Functions para Firebase da seguinte maneira:

Android
        // 10.0.2.2 is the special IP address to connect to the 'localhost' of
        // the host computer from an Android emulator.
        FirebaseFunctions functions = FirebaseFunctions.getInstance();
        functions.useEmulator("10.0.2.2", 5001);
iOS – Swift
Functions.functions().useFunctionsEmulator(origin: "http://localhost:5001")

Versão 9 para a Web

import { getApp } from "firebase/app";
import { getFunctions, connectFunctionsEmulator } from "firebase/functions";

const functions = getFunctions(getApp());
connectFunctionsEmulator(functions, "localhost", 5001);

Versão 8 para a Web

firebase.functions().useEmulator("localhost", 5001);

Instrumentar o app para emulação de funções HTTPS

Cada função HTTPS no seu código será exibida pelo emulador local usando o seguinte formato de URL:

http://$HOST:$PORT/$PROJECT/$REGION/$NAME

Por exemplo, uma função helloWorld simples com a porta e a região de host padrão seria exibida em:

https://localhost:5001/$PROJECT/us-central1/helloWorld

Instrumentar o app para emulação de funções acionadas em segundo plano

O emulador do Cloud Functions é compatível com funções acionadas em segundo plano das seguintes fontes:

  • Emulador do Realtime Database
  • Emulador do Cloud Firestore
  • Emulador do Authentication
  • Emulador do Pub/Sub

Para acionar eventos em segundo plano, conecte seu app ou código de teste aos emuladores usando o SDK da sua plataforma.

Interações com outros serviços

O conjunto inclui vários emuladores, que permitem o teste de interações entre produtos.

Cloud Firestore

Se você tiver funções do Cloud Functions que usam o SDK Admin do Firebase para escrever no Cloud Firestore, essas escritas serão enviadas ao emulador do Cloud Firestore, se estiverem em execução. Se mais funções do Cloud Functions forem acionadas por essas escritas, elas serão executadas no emulador do Cloud Functions.

Firebase Hosting

Se você usa o Cloud Functions para gerar conteúdo dinâmico para o Firebase Hosting , o firebase emulators:start usará suas funções HTTP locais como proxies para hospedagem.

Geração de registros

O emulador transmite registros de suas funções para a janela do terminal em que eles são executados. Ele exibe todos os resultados das instruções console.log(), console.info(), console.error() e console.warn() dentro das suas funções.

Próximas etapas

Para um exemplo completo sobre como usar o conjunto de emuladores do Firebase, consulte a Amostra do guia de início rápido de teste.