Cloud Functions によって、デベロッパーは Firebase および Google Cloud イベントにアクセスでき、それらのイベントに対応してコードを実行するスケーラブルな処理能力を得ることができます。Firebase アプリでは、独自の要件を満たすために独自の方法で Cloud Functions を使用することが想定されますが、典型的な使用例は次の領域に分類されます。
- 関心事が発生したときにユーザーに通知します。
- データベースのサニタイズとメンテナンスを実行します。
- アプリではなくクラウドで集中的なタスクを実行します。
- サードパーティのサービスおよび API と統合します。
興味のあるカテゴリの使用例とサンプルを確認してから、はじめにチュートリアル、または認証イベントやアナリティクス イベントなどの入門ガイドに進みます。
関心事が発生したときにユーザーに通知する
デベロッパーは Cloud Functions を使用して、ユーザーが常にアプリに関する情報に関心を持ち、最新情報に接するようにすることができます。たとえば、ユーザーがアプリ内でのお互いの活動をフォローできるアプリを考えてみましょう。ユーザーが自分を別のユーザーのフォロワーとして追加するたびに、Realtime Database に書き込みが行われます。この書き込みイベントによって関数がトリガーされ、適切なユーザーに新しいフォロワーの追加を知らせる Firebase Cloud Messaging(FCM)通知が作成されます。
- 関数は、フォロワーが保存される Realtime Database パスへの書き込みでトリガーされます。
- 関数によって、FCM を介して送信するメッセージが作成されます。
- FCM によって、通知メッセージがユーザーのデバイスに送信されます。
実際のコードを確認するには、FCM 通知の送信をご覧ください。
関心事通知のその他の使用例
- ニュースレターを登録または登録解除したユーザーに確認メールを送信します。
- ユーザーがサインアップを完了したときに登録完了の通知メールを送信します。
- ユーザーが新しいアカウントを作成したときに SMS 確認を送信します。
データベースのサニタイズとメンテナンスを実行する
Cloud Functions のデータベース イベント処理を使用すると、ユーザーの動作に応じて Realtime Database または Cloud Firestore を変更し、システムを最新でクリーンな状態に保つことができます。たとえば、チャットルーム アプリでは、書き込みイベントをモニタリングし、不適切または冒とく的なテキストをユーザーのメッセージから除去できます。その仕組みは次のとおりです。
- 関数のデータベース イベント ハンドラによって、特定のパス上の書き込みイベントがリッスンされ、チャット メッセージのテキストを含むイベントデータが取得されます。
- 関数によってテキストが処理され、不適切な表現が検出されて除去されます。
- 更新されたテキストが関数によってデータベースに書き戻されます。
実際のコードを確認するには、テキスト管理のサンプルをご覧ください。このサンプルでは、チャット メッセージ内の不適切な表現および大文字での「叫び」がサニタイズされます。
データベースのサニタイズとメンテナンスのその他の使用例
- 削除されたユーザーのコンテンツを Realtime Database から削除します。
- Firebase データベース内の子ノードの数を制限します。
- Realtime Database リストの要素の数を追跡します。
- Realtime Database から Google Cloud BigQuery にデータをコピーします。
- テキストを絵文字に変換します。
- データベース レコードの計算されたメタデータを管理します。
アプリではなくクラウドで集中的なタスクを実行する
デベロッパーは Cloud Functions を利用して、ユーザーのデバイスで実行することが現実的ではない、リソースを大量に必要とする作業(負荷が大きい CPU やネットワーキング)を Google Cloud にオフロードできます。たとえば、Cloud Storage への画像アップロードをリッスンする関数を記述し、関数を実行するインスタンスに画像をダウンロードし、変更し、Cloud Storage にアップロードして戻すことができます。変更には、画像のサイズ変更、切り抜き、変換などが含まれます。この作業を簡単にするために、ImageMagick コマンドライン ツールが Cloud Functions で使用するために提供されています。
- 画像ファイルが Cloud Storage にアップロードされると、関数がトリガーされます。
- 関数によって画像がダウンロードされ、画像のサムネイル バージョンが作成されます。
- 関数によってそのサムネイルの場所がデータベースに書き込まれるため、クライアント アプリはそれを見つけて使用できます。
- 関数によってサムネイルは Cloud Storage の新しい場所にアップロードされます。
- アプリはサムネイル リンクをダウンロードします。
画像処理の例のチュートリアルについては、Storage イベントの処理をご覧ください。
Firebase Cloud でのバッチジョブのその他の例
- 未使用の Firebase アカウントを定期的に削除します。
- アップロードした画像を自動的に管理します。
- 一括メールをユーザーに送信します。
- データを定期的に集計して整理します。
- 保留中の作業のキューを処理します。
サードパーティのサービスおよび API と統合する
Cloud Functions は、ウェブ API の呼び出しや公開によってアプリと他のサービスとの連携を強化するのに役立ちます。たとえば、開発時の共同作業に使用されるアプリは、GitHub の commit をワークグループのチャットルームに投稿できます。
- ユーザーが GitHub リポジトリに commit を push します。
- HTTPS 関数が GitHub webhook API を介してトリガーされます。
- 関数によって commit の通知がチームの Slack チャンネルに送信されます。
サードパーティのサービスおよび API と統合するためのその他の方法
- Google Cloud Vision API を使用して、アップロードした画像を分析およびタグ付けします。
- Google 翻訳を使用してメッセージを翻訳します。
- LinkedIn や Instagram などの認証プロバイダを使用してユーザーのログインを行います。
- Realtime Database 書き込みで webhook にリクエストを送信します。
- Realtime Database 要素に対する全文検索を有効化します。
- ユーザーからの支払いを処理します。
- 電話や SMS メッセージに対する自動応答を作成します。
- Google アシスタントを使用して chatbot を作成します。