計劃功能

如果你想時間表功能在指定的時間,使用運行functions.pubsub.schedule().onRun()這個便利方法創建一個發布/訂閱的主題,使用雲調度來觸發事件在該主題,確保你的函數運行所需的時間表。

在你開始之前

要在您的 Firebase 項目中使用此解決方案,您的項目必須採用 Blaze 定價計劃。如果它不是已經在大火計劃,升級你的定價計劃

儘管需要計費,但您可以預期總體成本是可控的,因為每個 Cloud Scheduler 作業每月的費用為 0.10 美元 (USD),並且每個 Google 帳戶允許提供三個免費作業。使用火焰定價計算器,以基於您的預計使用成本估算。

必須為您的項目啟用 Pub/Sub 和 Cloud Scheduler API。大多數 Firebase 項目應該已經啟用了這些功能;您可以在驗證谷歌雲平台控制台

編寫定時函數

在 Cloud Functions for Firebase 中,調度邏輯駐留在您的函數代碼中,沒有特殊的部署時要求。創建調度功能,用途functions.pubsub.schedule('your schedule').onRun((context))例如,要運行每五分鐘與功能的App Engine cron.yaml語法,做這樣的事情:

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

Cloud Scheduler 支持 Unix Crontab 和 App Engine 語法。例如,要使用 Crontab 選擇運行預定函數的特定時區,請執行以下操作:

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

對於價值timeZone必須從一個時區名時區信息數據庫。見雲計劃參考了有關支持性的更多信息。

部署調度函數

部署調度函數時,會自動創建相關的調度程序作業和發布/訂閱主題。在火力地堡CLI呼應主題名稱,可以在查看作業和課題GCP控制台。該主題根據以下約定命名:

火力-scheduled- function_name - region

例如:

firebase-scheduled-scheduledFunctionCrontab-us-east1.