Firebase is back at Google I/O on May 10! Register now

Zeitplanfunktionen

Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

Wenn Sie die Ausführung von Funktionen zu bestimmten Zeiten planen möchten, verwenden Sie functions.pubsub.schedule().onRun() Diese bequeme Methode erstellt ein Pub/Sub- Thema und verwendet Cloud Scheduler , um Ereignisse zu diesem Thema auszulösen und sicherzustellen, dass Ihre Funktion weiter ausgeführt wird den gewünschten Zeitplan.

Bevor Sie beginnen

Um diese Lösung in Ihrem Firebase-Projekt zu verwenden, muss Ihr Projekt den Blaze-Preisplan haben. Wenn es nicht bereits im Blaze-Plan enthalten ist, aktualisieren Sie Ihren Preisplan .

Obwohl eine Abrechnung erforderlich ist, können Sie davon ausgehen, dass die Gesamtkosten überschaubar sind, da jeder Cloud Scheduler-Job 0,10 $ (USD) pro Monat kostet und drei kostenlose Jobs pro Google-Konto gewährt werden. Verwenden Sie den Blaze- Preisrechner , um eine Kostenschätzung basierend auf Ihrer voraussichtlichen Nutzung zu erstellen.

Die Pub/Sub- und Cloud Scheduler-APIs müssen für Ihr Projekt aktiviert sein. Diese sollten für die meisten Firebase-Projekte bereits aktiviert sein; Sie können dies in der Google Cloud Platform-Konsole überprüfen.

Schreiben Sie eine geplante Funktion

In Cloud Functions for Firebase befindet sich die Planungslogik in Ihrem Funktionscode, ohne besondere Anforderungen an die Bereitstellungszeit. Um eine geplante Funktion zu erstellen, verwenden Sie functions.pubsub.schedule('your schedule').onRun((context)) . Um beispielsweise alle fünf Minuten eine Funktion mit der cron.yaml-Syntax von App Engine auszuführen, gehen Sie folgendermaßen vor:

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

Sowohl die Unix-Crontab- als auch die App Engine-Syntax werden von Cloud Scheduler unterstützt. Um beispielsweise mit Crontab eine bestimmte Zeitzone auszuwählen, in der eine geplante Funktion ausgeführt werden soll, gehen Sie folgendermaßen vor:

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

Der Wert für timeZone muss ein Zeitzonenname aus der tz-Datenbank sein. Weitere Informationen zu unterstützten Eigenschaften finden Sie in der Cloud Scheduler-Referenz .

Stellen Sie eine geplante Funktion bereit

Wenn Sie eine geplante Funktion bereitstellen, werden der zugehörige Scheduler-Job und das Pub/Sub-Thema automatisch erstellt. Die Firebase-CLI gibt den Themennamen wieder und Sie können den Job und das Thema in der GCP Console anzeigen. Das Thema wird nach folgender Konvention benannt:

firebase-scheduled- function_name - region

Zum Beispiel:

firebase-scheduled-scheduledFunctionCrontab-us-east1.