Firebase Summit で発表されたすべての情報をご覧ください。Firebase を使用してアプリ開発を加速し、自信を持ってアプリを実行する方法を紹介しています。詳細

スケジュール機能

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

指定した時間に関数を実行するようにスケジュールする場合は、 functions.pubsub.schedule().onRun()を使用します。この便利なメソッドは、 Pub/Subトピックを作成し、 Cloud Schedulerを使用してそのトピックでイベントをトリガーし、関数が確実に実行されるようにします。希望のスケジュール。

あなたが始める前に

このソリューションを Firebase プロジェクトで使用するには、プロジェクトが Blaze 料金プランに含まれている必要があります。 Blaze プランにまだ含まれていない場合は、料金プランをアップグレードします

請求は必要ですが、各 Cloud Scheduler ジョブの費用は月額 $0.10 (USD) であり、Google アカウントごとに 3 つのジョブを無料で利用できるため、全体的なコストは管理しやすいと期待できます。 Blaze料金計算ツールを使用して、予測される使用量に基づいてコストを見積もります。

プロジェクトで Pub/Sub API と Cloud Scheduler API を有効にする必要があります。これらは、ほとんどの Firebase プロジェクトですでに有効になっているはずです。 Google Cloud Platform Consoleで確認できます。

スケジュールされた関数を書く

Cloud Functions for Firebase では、スケジュール ロジックは関数コード内にあり、特別なデプロイ時間の要件はありません。スケジュールされた関数を作成するには、 functions.pubsub.schedule('your schedule').onRun((context))を使用します。たとえば、 App Engine の cron.yaml構文で関数を 5 分ごとに実行するには、次のようにします。

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

Unix Crontab と App Engine の両方の構文が Cloud Scheduler でサポートされています。たとえば、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 リファレンスを参照してください。

スケジュールされた機能をデプロイする

スケジュールされた関数をデプロイすると、関連するスケジューラ ジョブと pub/sub トピックが自動的に作成されます。 Firebase CLI はトピック名をエコーし​​、 GCP Consoleでジョブとトピックを表示できます。トピックは、次の規則に従って名前が付けられます。

firebase-scheduled- function_name - region

例えば:

firebase-scheduled-scheduledFunctionCrontab-us-east1.