Programa funciones


Si quieres programar funciones que se ejecuten en momentos específicos, usa el controlador onSchedule para crear un tema de Pub/Sub que use Cloud Scheduler para activar eventos en ese tema.

Antes de comenzar

Para usar esta solución en tu proyecto de Firebase, este debe tener el plan de precios Blaze. Si aún no lo tienes, actualiza tu plan de precios.

Aunque la facturación es obligatoria, el costo general del plan es controlable, ya que cada trabajo de Cloud Scheduler tiene un valor mensual de $0.10 y cada Cuenta de Google puede tener hasta tres trabajos sin cargo. Usa la calculadora de precios para obtener una estimación de los costos en función del uso proyectado.

Las APIs de Pub/Sub y Cloud Scheduler deben estar habilitadas en tu proyecto. Ya deberían estar habilitadas para la mayoría de los proyectos de Firebase. Confírmalo en la consola de Google Cloud.

Escribe una función programada

En Cloud Functions for Firebase, la lógica de programación reside en el código de tus funciones, sin requisitos especiales de tiempo de implementación. Usa functions.pubsub.schedule('your schedule').onRun((context)) para crear una función programada. Por ejemplo, si quieres ejecutar una función cada cinco minutos con la sintaxis App Engine cron.yaml, haz algo similar a lo siguiente:

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

Cloud Scheduler admite las sintaxis de Unix Crontab y App Engine. Por ejemplo, si quieres usar Crontab para seleccionar la zona horaria específica en la que deseas ejecutar una función programada, haz algo similar a lo siguiente:

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;
});

El valor de timeZone debe ser el nombre de una zona horaria de la base de datos tz. Consulta la referencia de Cloud Scheduler para obtener más información sobre las propiedades compatibles.

Implementa una función programada

Cuando implementas una función programada, se crean automáticamente el trabajo de Scheduler relacionado y el tema de Pub/Sub. Firebase CLI repite el nombre del tema, y puedes ver el trabajo y el tema en la consola de Google Cloud. Se asigna un nombre al tema según esta convención:

firebase-scheduled-function_name-region

Por ejemplo:

firebase-scheduled-scheduledFunctionCrontab-us-east1.