Firebase Functions - Emulators

Olá meus Unicórnios! 🦄✨

Aprendemos muitos nos tutoriais anteriores, mas não pode faltar uma forma de testar nossa aplicação Offline.

Para isto, o Firebase tem uma ferramenta chamada "Firebase Emulator".

Para este tutorial, iremos utilizar as funções e base criadas no tutorial anterior:

Firebase Functions - Utilizando o Realtime Database
Passo a passo para usar Firebase Functions com Realtime Database para gerenciar usuários, desde o registro até a exclusão e listagem de dados

No CMD, execute o comando abaixo para instalar o Emulator:

npm install -g firebase-tools

Depois da instalação, abra o arquivo "firebase.json".

Iremos adicionar um novo elemento chamado "emulators" indicando as portas que iremos utilizar:

"emulators": {
  "database": {
    "host": "localhost",
    "port": 9000
  },
  "functions": {
    "host": "localhost",
    "port": 5001
  },
  "ui": {
    "enabled": true,
    "host": "localhost",
    "port": 4000
  }
}

O arquivo completo deve ficar semelhante ao arquivo abaixo:

{
  "functions": [
    {
      "source": "functions",
      "codebase": "default",
      "ignore": [
        "node_modules",
        ".git",
        "firebase-debug.log",
        "firebase-debug.*.log",
        "*.local"
      ]
    }
  ],
  "hosting": {
    "rewrites": [
      {
        "source": "/helloworld/**",
        "function": {
        "functionId": "helloworld"
        }
      },{
        "source": "/RegistraUsuario/**",
        "function": {
        "functionId": "RegistraUsuario"
        }
      },{
        "source": "/BuscaUsuario/**",
        "function": {
        "functionId": "BuscaUsuario"
        }
      },{
        "source": "/DeletaUsuario/**",
        "function": {
        "functionId": "DeletaUsuario"
        }
      },{
        "source": "/ListaUsuarios/**",
        "function": {
        "functionId": "ListaUsuarios"
        }
      }
    ]
  },
  "emulators": {
    "database": {
      "host": "localhost",
      "port": 9000
    },
    "functions": {
      "host": "localhost",
      "port": 5001
    },
    "ui": {
      "enabled": true,
      "host": "localhost",
      "port": 4000
    }
  }
}

Estamos prontas para testar!

Execute o comando abaixo para iniciar o Emulador:

firebase emulators:start

Após o Emulator ser iniciado, o console ira indicar os endereços de cada recurso:

O console será acessado pela porta 4000:

http://localhost:4000

Nele temos acesso a todos os recursos que ativamos:

Observe que as funções são acionadas via:

http://127.0.0.1:5001/[PROJETO]/us-central1/

Exemplo de Chamada da Função "RegistraUsuario":

http://127.0.0.1:5001/testespaloma/us-central1/RegistraUsuario/

Se você precisar confirmar a url das funções, acesses "Functions emulator" no Console do Emulador:

Você deve ter observado que não temos emulador para o Google Task, o que impede que emulemos as tarefas de webhook.

No tutorial seguinte, iremos abordar uma alternativa totalmente funcional.

Por hoje é só, meus unicórnios! 🦄✨

Que a magia do arco-íris continue brilhando em suas vidas! Até mais! 🌈🌟