Antworten:
Update 2019-04-18
Es gibt jetzt eine sehr einfache Möglichkeit, geplanten Code für Cloud-Funktionen über Firebase bereitzustellen.
Sie können entweder eine einfache Textsyntax verwenden:
export scheduledFunctionPlainEnglish =
functions.pubsub.schedule('every 5 minutes').onRun((context) => {
console.log('This will be run every 5 minutes!');
})
Oder das flexiblere Cron-Tabellenformat:
export scheduledFunctionCrontab =
functions.pubsub.schedule('5 11 * * *').onRun((context) => {
console.log('This will be run every day at 11:05 AM UTC!');
});
Weitere Informationen hierzu finden Sie unter:
Beachten Sie, dass sich Ihr Projekt in einem Blaze-Plan befinden muss, damit dies funktioniert. Daher lasse ich die folgenden alternativen Optionen als Referenz.
Wenn Sie einen einzelnen Aufruf einer Cloud-Funktion mit einer Verzögerung innerhalb der Ausführung eines anderen Triggers planen möchten , können Sie dies mithilfe von Cloud-Aufgaben einrichten. In diesem Artikel finden Sie ein ausführliches Beispiel dafür, wie dies funktionieren kann.
Ursprüngliche Antwort unten ...
Es gibt noch keinen eingebauten Runat / Cron-Trigger.
Derzeit ist es am besten, einen externen Dienst zu verwenden, um regelmäßig eine HTTP-Funktion auszulösen. Weitere Informationen finden Sie in diesem Beispiel im Repo für Funktionsbeispiele . Oder verwenden Sie den kürzlich eingeführten Google Cloud Scheduler, um Cloud-Funktionen über PubSub oder HTTPS auszulösen:
Ich empfehle außerdem dringend, diesen Beitrag im Firebase-Blog zu lesen: Planen von (Cron) Jobs mit Cloud-Funktionen für Firebase und dieses Video: Timing von Cloud-Funktionen für Firebase mithilfe eines HTTP-Triggers und Cron .
Dieser letzte Link verwendet cron-job.org , um Cloud-Funktionen auszulösen, und funktioniert für Projekte, für die ein kostenloser Plan vorliegt . Beachten Sie, dass jeder Ihre Funktion ohne Berechtigung aufrufen kann. Daher möchten Sie möglicherweise einen Missbrauchsschutzmechanismus in den Code selbst aufnehmen.
Each Cloud Scheduler job costs $0.10 (USD) per month
Wenn Sie "Job" annehmen, bedeutet dies nicht jedes Mal, wenn das geplante Objekt ausgelöst wird, sondern die Kosten pro Timer? dh ein Job, der jede Minute ausgeführt wird, kostet nur 0,10 USD? (Ausgenommen alle Cloud-Funktionen, die aufgerufen werden).
Sie können eine AppEngine-Instanz starten, die durch einen Cron-Job ausgelöst und an PubSub gesendet wird. Ich habe einen Blog-Beitrag speziell dazu geschrieben. Vielleicht möchten Sie einen Blick darauf werfen:
https://mhaligowski.github.io/blog/2017/05/25/scheduled-cloud-function-execution.html
cron-job.org
dass Jen im Blog-Beitrag darüber spricht, ist die Verwendung kostenlos.