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 通知の送信をご覧ください。

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

Realtime Database のサニタイズとメンテナンスを実行する

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

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

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

Realtime Database のサニタイズとメンテナンスのその他の使用例

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

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

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

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

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

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

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

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

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

フィードバックを送信...

ご不明な点がありましたら、Google のサポートページをご覧ください。