Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

Zeitplanfunktionen

Wenn Sie auf Zeitplan Funktionen mögen zu bestimmten Zeiten ausgeführt wird , verwenden functions.pubsub.schedule().onRun() Diese praktische Methode erstellt ein Pub / Sub - Thema und nutzt Cloud - Scheduler auf Triggerereignisse zu diesem Thema, so dass Ihre Funktion läuft auf den gewünschten Zeitplan.

Bevor Sie beginnen

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

Obwohl eine Abrechnung erforderlich ist, können Sie davon ausgehen, dass die Gesamtkosten überschaubar sind, da jeder Cloud Scheduler-Auftrag 0,10 USD (USD) pro Monat kostet und pro Google-Konto drei kostenlose Aufträge zulässig sind. Verwenden Sie die Blaze Preisrechner eine Kostenschätzung zu erzeugen , basierend auf dem projizierten Nutzung.

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 in der überprüfen Google Cloud Platform - Konsole .

Schreiben Sie eine geplante Funktion

In Cloud Functions for Firebase befindet sich die Planungslogik in Ihrem Funktionscode ohne besondere Anforderungen an die Bereitstellungszeit. So erstellen Sie eine geplante Funktion, Verwendung functions.pubsub.schedule('your schedule').onRun((context)) . Um zum Beispiel eine Funktion alle fünf Minuten mit laufen App Engine cron.yaml Syntax, tun Sie etwas wie folgt aus :

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 wird von Cloud Scheduler unterstützt. Um beispielsweise Crontab zu verwenden, um eine bestimmte Zeitzone auszuwählen, in der eine geplante Funktion ausgeführt werden soll, gehen Sie wie folgt 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 eine Zeitzone Name von dem seine tz - Datenbank . Siehe die Cloud - Scheduler Referenz für weitere Informationen über die unterstützten Eigenschaften.

Bereitstellen einer geplanten Funktion

Wenn Sie eine geplante Funktion bereitstellen, werden der zugehörige Scheduler-Job und das Pub/Sub-Thema automatisch erstellt. Die Firebase CLI hallt den Namen des Themas, und Sie können den Auftrag und Thema in der Ansicht GCP - Konsole . Das Thema wird nach folgender Konvention benannt:

Feuerbasis -scheduled- function_name - region

Zum Beispiel:

firebase-scheduled-scheduledFunctionCrontab-us-east1.