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

計劃功能

如果你想時間表功能在指定的時間,使用運行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.