Se quiser programar funções para serem executadas em horários especificados, use o gerenciador onSchedule
para criar um tema
Pub/Sub que usa o Cloud Scheduler para acionar eventos sobre esse tópico.
Antes de começar
Para usar essa solução no seu projeto do Firebase, é preciso que o projeto esteja no plano de preços Blaze. Se ainda não estiver no plano Blaze, faça upgrade do seu plano de preços.
O faturamento é obrigatório, mas o custo geral é 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 por conta do Google, sem custo financeiro. Use a calculadora de preços do Blaze para gerar uma estimativa de custo com base na sua projeção de uso.
As APIs Pub/Sub e 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 App Engine, 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 App Engine são compatíveis com o 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.