Ir para o console

Programar funções

Se quiser programar funções para serem executadas em horários especificados, use functions.pubsub.schedule().onRun(). Esse método prático cria um tópico do Cloud Pub/Sub e usa o Cloud Scheduler para acionar eventos nesse tópico, garantindo que sua função seja executada conforme a programação desejada.

Antes de começar

Para usar essa solução no projeto do Firebase, é necessário estar no plano de faturamento Blaze. Se você ainda não estiver nesse plano, atualize sua conta.

Embora o faturamento seja obrigatório, espera-se que o custo geral seja gerenciável, porque cada job do Cloud Scheduler custa US$ 0,10 (USD) por mês e há um crédito de três jobs gratuitos por conta do Google. Use a calculadora de preços do Blaze para gerar uma estimativa de custo com base no seu uso projetado.

A API Google Cloud Pub/Sub e a API Cloud Scheduler precisam estar ativadas no seu projeto. Essas APIs já devem estar ativadas na maioria dos projetos do Firebase. Para verificar isso, acesse o Console do Google Cloud Platform.

Escrever uma função programada

No Cloud Functions para Firebase, a lógica de programação está no código das funções, sem requisitos especiais de tempo de implantação. Para criar uma função programada, use functions.pubsub.schedule('your schedule').onRun((context)). Por exemplo, para executar uma função a cada cinco minutos com a sintaxe cron.yaml do AppEngine, escreva um código semelhante a este:

exports.scheduledFunction = functions.pubsub.schedule('every 5 minutes').onRun((context) => {
  console.log('This will be run every 5 minutes!');
});

As sintaxes do Unix Crontab e do AppEngine são compatíveis com o Google Cloud Scheduler. Por exemplo, caso queira usar o Crontab para selecionar um fuso horário específico a fim de executar uma função planejada, escreva um código semelhante a este:

exports.scheduledFunctionCrontab = functions.pubsub.schedule('5 11 * * *')
  .timeZone('America/New_York') // Users can choose timezone - default is America/Los_Angeles
  .onRun((context) => {
  console.log('This will be run every day at 11:05 AM Eastern!');
});

Implantar uma função programada

Ao implantar uma função programada, o job do programador relacionado e o tópico do Pub/Sub são criados automaticamente. A Firebase CLI reflete o nome do tópico e é possível visualizar o job e o tópico no Console do GCP. O nome do tópico é definido conforme a seguinte convenção:

firebase-scheduled-function_name-region

Por exemplo:

firebase-scheduled-scheduledFunctionCrontab-us-east1.