Criando Google Schedule para Firebase Cloud Function.

renato barçalobre
Senior Mega
Published in
2 min readAug 10, 2020

Algumas vezes precisamos de processos que rodam de tempos em tempos, isso é natural hoje em dia. Mas como podemos fazer isso?

Foi aí que encontramos uma solução interessante chamada Scheduler, muitos já são familiarizados com esse termo e já temos muitas soluções na “internet”para isso, inclusive soluções gratuitas!

Utilizamos por um tempo uma delas por um longo tempo, porém, decidimos a centralização das nossas ferramentas em uma única plataforma e como usamos o Firebase decidimos migrar tudo para as soluções google.

Caso ainda não conheça o schedule da google, acesse o link :

https://cloud.google.com/scheduler

Porém, como nada é tão simples, tivemos alguns problemas para migrar as nossas cloud functions schedules da ferramenta atual para a Google Cloud Scheduler.

Primeiro que usamos funções Post para nossos schedules enviando formatos JSON no BODY nas requisições em HTTP… e para configurar no google Cloud Scheduler não tem a possibilidade de passar o formato JSON, pois o o mesmo envia o tipo de formatação content-type por padrão como application/octet-stream e não e possível alterar, isso torna o js express incapaz de analisar os dados no corpo da solicitação quando usamos o agendador do cloud para POST na tela de cadastro manual.

Porém, quando usamos a opção de pub/sub das nossas functions, o interpretador da cloud function envia a formatação content-type como application/json e o js express e capaz de ler o corpo da chamada.

A forma que usamos para isso segue a seguinte etapa da documentação da google:

Schedule functions | Firebase

Essa forma mantém as nossas atividades centralizadas no nosso código e no visualizador das functions são apresentados no formato schedule, deixando assim de fácil visualização para o monitor de funções, e no código deixou claro quais funções tem a responsabilidade de schedule.

Na visualizacao das Cloud functions, será apresentado o formato schedule:

Dentro do fonte JS, será apresentado também quem é schedule e seu tempo:

Esperamos ter contribuído para sanar mais uma dúvida sobre a formatação do content-type para inserção dos schedules no google cloud scheduler.

--

--