获取我们在 Firebase 峰会上发布的所有信息,了解 Firebase 可如何帮助您加快应用开发速度并满怀信心地运行应用。了解详情

调度功能

使用集合让一切井井有条 根据您的偏好保存内容并对其进行分类。

如果你想安排函数在指定的时间运行,使用functions.pubsub.schedule().onRun()这个方便的方法创建一个Pub/Sub主题并使用Cloud Scheduler触发关于该主题的事件,确保你的函数在所需的时间表。

在你开始之前

要在您的 Firebase 项目中使用此解决方案,您的项目必须采用 Blaze 定价计划。如果它尚未包含在 Blaze 计划中,请升级您的定价计划

虽然需要计费,但您可以预期总体成本是可控的,因为每个 Cloud Scheduler 作业每月花费 0.10 美元 (USD),并且每个 Google 帐户可以免费使用三个作业。使用 Blaze定价计算器根据您的预计使用情况生成成本估算。

必须为您的项目启用 Pub/Sub 和 Cloud Scheduler API。这些应该已经为大多数 Firebase 项目启用;您可以在Google Cloud Platform Console中验证。

写一个定时函数

在 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的值必须是来自tz 数据库的时区名称。有关支持的属性的更多信息,请参阅Cloud Scheduler 参考

部署预定函数

部署计划函数时,会自动创建相关的计划程序作业和发布/订阅主题。 Firebase CLI 回显主题名称,您可以在GCP Console中查看作业和主题。该主题根据以下约定命名:

firebase-scheduled- function_name - region

例如:

firebase-scheduled-scheduledFunctionCrontab-us-east1。

,

如果你想安排函数在指定的时间运行,使用functions.pubsub.schedule().onRun()这个方便的方法创建一个Pub/Sub主题并使用Cloud Scheduler触发关于该主题的事件,确保你的函数在所需的时间表。

在你开始之前

要在您的 Firebase 项目中使用此解决方案,您的项目必须采用 Blaze 定价计划。如果它尚未包含在 Blaze 计划中,请升级您的定价计划

虽然需要计费,但您可以预期总成本是可控的,因为每个 Cloud Scheduler 作业每月花费 0.10 美元 (USD),并且每个 Google 帐户可以免费使用三个作业。使用 Blaze定价计算器根据您的预计使用情况生成成本估算。

必须为您的项目启用 Pub/Sub 和 Cloud Scheduler API。这些应该已经为大多数 Firebase 项目启用;您可以在Google Cloud Platform Console中验证。

写一个定时函数

在 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的值必须是来自tz 数据库的时区名称。有关支持的属性的更多信息,请参阅Cloud Scheduler 参考

部署预定函数

部署计划函数时,会自动创建相关的计划程序作业和发布/订阅主题。 Firebase CLI 回显主题名称,您可以在GCP Console中查看作业和主题。该主题根据以下约定命名:

firebase-scheduled- function_name - region

例如:

firebase-scheduled-scheduledFunctionCrontab-us-east1。