Testando Firebase Cloud Functions com emulador local e Postman

renato barçalobre
Senior Mega
Published in
3 min readJul 29, 2020

Você gosta de testar as coisas que faz antes de liberar para o público? Nós também! E tivemos a necessidade de emular localmente nossas functions e descobrimos que era mais que só rodar o emulador para termos nossas respostas, entao saimos varrendo a “internet” para achar a forma de fazer isso, e vimos que temos muitos tópicos com partes do problema, então decidimos unir tudo para ajudar as próximas pessoas que irão fazer isso! Aproveitem !

Este documento é dedicado a parte de testes de Firebase Cloud Function com emulador local via Postman.

Pre-requisito:

Se seu projeto não possui configurado ainda o firebase-tools, siga o passo-a-passo da documentação oficial do firebase.

https://firebase.google.com/docs/functions/local-emulator#unix

Agora partiremos para a parte de execução do emulador local e a configuração pelo postman.

Abra o prompt de comando na pasta das functions

Verifique se a variável de ambiente (GOOGLE_APPLICATION_CREDENTIALS) está configurada com o caminho do seu json.

Comando para validar em windows: echo %GOOGLE_APPLICATION_CREDENTIALS%

Caso não esteja, execute a inserção do valor do seu caminho json.

Comando para inserir em windows: set GOOGLE_APPLICATION_CREDENTIALS=”CAMINHO DO ARQUIVO.JSON”

Obs: não deixar as aspas no caminho!.

Apos estar com a variável configurada, execute o comando de inicialização do firabase-emulator.

Comando start firebase emulator: firebase emulators:start — only functions

Obs: Esse comando só ira iniciar as functions.

Após rodar, irá apresentar em seu terminal a seguinte informação:

Abra o navegador e coloque a url Gerada e irá apresentar um dashboard do emulador.

O dashboard apresenta os itens que estão ativos naquele momento e as portas liberadas.

Agora iremos para o Postman.

Abra o postman, e crie um novo item no modelo POST.

Neste momento iremos resgatar um item fundamental para nossa execução que e o idToken do usuário.

Para isso você precisa do IdWeb do projeto.

Vá no seu projeto Firebase. Clique no item Configurações ( a famosa engrenagem) em seguida > configurações do projeto.

Pegue o item : Web API Key.

Apos capturar isso, volte ao postman

E na guia da URL adicione o seguinte comando composto pela Key do projeto.

Comando: https://www.googleapis.com/identitytoolkit/v3/relyingparty/verifyPassword?key=[idToken]

Agora vá na opção body, selecione a formatação [x-www-form-urlencoded] e adicione as seguintes Keys:

Email: [Email do projeto firebase]

password: [Senha do projeto firebase]

returnSecureToken : true

Mande enviar

O Retorno dele será um JSON com os seguintes dados.

{

“kind”:

“localId”:

“email”:

“displayName”:

“idToken”:

“registered”:

“refreshToken”:

“expiresIn”:

}

A Informação que buscamos para nossa consulta será o [idToken].

Agora iremos abrir uma nova aba no Modelo que sua Function trabalha, no meu caso irei usar POST.

Coloque a URL liberada pelo emulador + o nome da function

Comando: http://localhost:5001/[projeto]/[localizacao]/[MeuMetodo]

Você ira colocar no body o JSON da sua informação que irá usar para o teste

E agora o mais importante. Vá ate a aba Authorization

Selecione o método Bearer Token e no campo Token insira o Token do idToken capturado na outra consulta.

Apos isso enviar a consulta e verificar se o status sera o qual você aguarda!

Com isso, você poderá capturar no console do emulador os comandos de console.log por exemplo, ajudando assim no desenvolvimento e/ou análise de algum erro que sua function possui sem estar em produção, emular testes e afins!

--

--