Cloud Functions で可能な処理

Cloud Functions によって、デベロッパーは Firebase および Google Cloud イベントにアクセスでき、それらのイベントに対応してコードを実行するスケーラブルな処理能力を得ることができます。Firebase アプリでは、独自の要件を満たすために独自の方法で Cloud Functions を使用することが想定されますが、典型的な使用例は次の領域に分類されます。

興味のあるカテゴリの使用例とサンプルを確認してから、はじめにチュートリアル、または認証イベントアナリティクス イベントなどの入門ガイドに進みます。

関心事が発生したときにユーザーに通知する

デベロッパーは Cloud Functions を使用して、ユーザーが常にアプリに関する情報に関心を持ち、最新情報に接するようにすることができます。たとえば、ユーザーがアプリ内でのお互いの活動をフォローできるアプリを考えてみましょう。ユーザーが自分を別のユーザーのフォロワーとして追加するたびに、Realtime Database に書き込みが行われます。この書き込みイベントによって関数がトリガーされ、適切なユーザーに新しいフォロワーの追加を知らせる Firebase Cloud Messaging(FCM)通知が作成されます。

以下で説明するアプリフローを示す図

  1. 関数は、フォロワーが保存される Realtime Database パスへの書き込みでトリガーされます。
  2. 関数によって、FCM を介して送信するメッセージが作成されます。
  3. FCM によって、通知メッセージがユーザーのデバイスに送信されます。

実際のコードを確認するには、FCM 通知の送信をご覧ください。

関心事通知のその他の使用例

データベースのサニタイズとメンテナンスを実行する

Cloud Functions のデータベース イベント処理を使用すると、ユーザーの動作に応じて Realtime Database または Cloud Firestore を変更し、システムを最新でクリーンな状態に保つことができます。たとえば、チャットルーム アプリでは、書き込みイベントをモニタリングし、不適切または冒とく的なテキストをユーザーのメッセージから除去できます。その仕組みは次のとおりです。

以下で説明するアプリフローを示す図

  1. 関数のデータベース イベント ハンドラによって、特定のパス上の書き込みイベントがリッスンされ、チャット メッセージのテキストを含むイベントデータが取得されます。
  2. 関数によってテキストが処理され、不適切な表現が検出されて除去されます。
  3. 更新されたテキストが関数によってデータベースに書き戻されます。

実際のコードを確認するには、テキスト管理のサンプルをご覧ください。このサンプルでは、チャット メッセージ内の不適切な表現および大文字での「叫び」がサニタイズされます。

データベースのサニタイズとメンテナンスのその他の使用例

アプリではなくクラウドで集中的なタスクを実行する

デベロッパーは Cloud Functions を利用して、ユーザーのデバイスで実行することが現実的ではない、リソースを大量に必要とする作業(負荷が大きい CPU やネットワーキング)を Google Cloud にオフロードできます。たとえば、Cloud Storage への画像アップロードをリッスンする関数を記述し、関数を実行するインスタンスに画像をダウンロードし、変更し、Cloud Storage にアップロードして戻すことができます。変更には、画像のサイズ変更、切り抜き、変換などが含まれます。この作業を簡単にするために、ImageMagick コマンドライン ツールが Cloud Functions で使用するために提供されています。

以下で説明するアプリフローを示す図

  1. 画像ファイルが Cloud Storage にアップロードされると、関数がトリガーされます。
  2. 関数によって画像がダウンロードされ、画像のサムネイル バージョンが作成されます。
  3. 関数によってそのサムネイルの場所がデータベースに書き込まれるため、クライアント アプリはそれを見つけて使用できます。
  4. 関数によってサムネイルは Cloud Storage の新しい場所にアップロードされます。
  5. アプリはサムネイル リンクをダウンロードします。

画像処理の例のチュートリアルについては、Storage イベントの処理をご覧ください。

Firebase Cloud でのバッチジョブのその他の例

サードパーティのサービスおよび API と統合する

Cloud Functions は、ウェブ API の呼び出しや公開によってアプリと他のサービスとの連携を強化するのに役立ちます。たとえば、開発時の共同作業に使用されるアプリは、GitHub の commit をワークグループのチャットルームに投稿できます。

以下で説明するアプリフローを示す図

  1. ユーザーが GitHub リポジトリに commit を push します。
  2. HTTPS 関数が GitHub webhook API を介してトリガーされます。
  3. 関数によって commit の通知がチームの Slack チャンネルに送信されます。

サードパーティのサービスおよび API と統合するためのその他の方法