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

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!');
  return null;
});

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!');
  return null;
});

O valor de timeZone precisa ser um nome de fuso horário do banco de dados tz . Consulte a referência do Cloud Scheduler para mais informações sobre as propriedades compatíveis.

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

Exemplo:

firebase-scheduled-scheduledFunctionCrontab-us-east1.