获取我们在 Firebase 峰会上发布的所有信息,了解 Firebase 可如何帮助您加快应用开发速度并满怀信心地运行应用。了解详情

Funções de programação

Se você quiser programar funções para serem executadas em horários especificados, use functions.pubsub.schedule().onRun() Este método de conveniência cria um tópico Pub/Sub e usa o Cloud Scheduler para acionar eventos nesse tópico, garantindo que sua função seja executada em o cronograma desejado.

Antes de você começar

Para usar esta solução em seu projeto do Firebase, seu projeto deve estar no plano de preços Blaze. Se ainda não estiver no plano Blaze, atualize seu plano de preços .

Embora o faturamento seja obrigatório, você pode esperar que o custo geral seja gerenciável, pois cada trabalho do Cloud Scheduler custa US$ 0,10 (USD) por mês e há um subsídio de três trabalhos por conta do Google, sem custo. Use a calculadora de preços do Blaze para gerar uma estimativa de custo com base no uso projetado.

As APIs Pub/Sub e Cloud Scheduler devem estar ativadas para seu projeto. Eles já devem estar ativados para a maioria dos projetos do Firebase; você pode verificar no Console do Google Cloud Platform .

Escreva uma função agendada

No Cloud Functions para Firebase, a lógica de programação reside no código das funções, sem requisitos especiais de tempo de implantação. Para criar uma função agendada, 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 App Engine , faça algo assim:

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

As sintaxes Unix Crontab e App Engine são compatíveis com o Cloud Scheduler. Por exemplo, para usar o Crontab para selecionar um fuso horário específico no qual executar uma função agendada, faça algo assim:

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 para timeZone deve ser um nome de fuso horário do banco de dados tz . Consulte a referência do Cloud Scheduler para obter mais informações sobre propriedades compatíveis.

Implantar uma função agendada

Quando você implanta uma função agendada, o trabalho do agendador relacionado e o tópico pub/sub são criados automaticamente. A Firebase CLI reproduz o nome do tópico, e você pode visualizar o job e o tópico no console do GCP . O tópico é nomeado de acordo com a seguinte convenção:

firebase-scheduled- function_name - region

Por exemplo:

firebase-scheduled-scheduledFunctionCrontab-us-east1.