Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

Funções de programação

Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

Se você deseja agendar funções para serem executadas em horários específicos, use functions.pubsub.schedule().onRun() Esse método de conveniência cria um tópico Pub/Sub e usa 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 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 administrá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 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 agendamento reside em seu código de 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 o seguinte:

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

Tanto o Unix Crontab quanto a sintaxe do 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 de 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 as propriedades com suporte.

Implantar uma função agendada

Ao implantar uma função agendada, o trabalho do agendador relacionado e o tópico de publicação/assinatura são criados automaticamente. A CLI do Firebase repete o nome do tópico, e você pode visualizar o trabalho 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.