Firebase Extensions

Firebase Extensions を使用すると、あらかじめパッケージ化されたソリューションを使用して、アプリに機能をすばやくデプロイできます。

インストールされた Firebase Extension は、HTTPS リクエスト、Cloud Scheduler イベント、または他の Firebase プロダクト(Cloud FirestoreFirebase Cloud Messaging など)からのイベント トリガーに応じて、特定のタスクを実行します。

Extensions Hub を詳しく見る 拡張機能のインストール方法を学習する 独自の拡張機能の構築方法を学習する


主な機能

開発、メンテナンス、拡張にかかる時間を短縮

拡張機能はパッケージ化されたソリューションであるため、インストールして構成するだけです。

拡張機能を使用すると、アプリやプロジェクトの機能を実装したり、タスクを自動化したりするコードの調査、作成、デバッグに時間がかかりません。

Extensions Hub をご覧になり、構築しようとしているアプリやプロジェクトに適したソリューションを見つけてください。

構成可能で再利用可能なビルド

インストールされた拡張機能のインスタンスは、それぞれ固有のものとなります。

拡張機能に、アプリ、プロジェクト、ユースケースに固有の構成値を指定します。拡張機能の目的に応じて、Cloud Firestore のパス、画像のサイズ、GitHub の URL など、ほぼすべての値を指定できます。

同じ拡張機能を異なるプロジェクトで再利用できます。同じ拡張機能の複数のインスタンスを 1 つのプロジェクトにインストールすることもできます。インストールされた各インスタンスは、独自のカスタマイズされた構成を持つことができます。

Firebase プラットフォームを統合

拡張機能は、既存のアーキテクチャに不足している部分を埋めることができます。

拡張機能は、アプリですでに使用している Firebase プロダクトによって生成されたイベントに応答できます。ある Firebase プロダクトに変更を加えることで、拡張機能によるタスクの実行がトリガーされるようにできます。このタスクで別のプロダクトを使用することもできます。たとえば、特定の Realtime Database の書き込みによって、新しい Firebase Cloud Messaging 通知が送信されるようにできます。

Firebase プロジェクトを他の Google Cloud Platform プロダクト(BigQuery や Google 翻訳など)やサードパーティのサービス(Mailchimp や Bit.ly など)と統合することもできます。

トリガー イベントは Firebase イベントに限定されません。HTTPS リクエストで拡張機能を直接トリガーしたり、定期的にトリガーしたりすることもできます。

セキュリティと制限付きアクセス

拡張機能のアプリケーション ロジックは、Google Cloud Functions を使用してバックエンドで実行されるため、コードはクライアントから完全に分離されます。

また、インストールされた拡張機能には、インストール前に明確にリストされたリソースとデータへの制限付きアクセスのみが付与されます。そのため、拡張機能は、プロジェクトの他の部分から分離されます。

メンテナンス不要

Firebase プロジェクトの拡張機能をインストールして構成した後、バックエンドは拡張機能のニーズに合わせてコンピューティング リソースを自動的にスケーリングします。

認証情報、サーバー構成、新規サーバーのプロビジョニング、古いサーバーのデコミッションを気にする必要はありません。

仕組み

Firebase Extension とは、特に定義されているイベントがアプリまたはプロジェクトで発生したときに、タスクを実行するコードです。

拡張機能のロジックは、Cloud Functions for Firebase を使用して記述します。拡張機能の関数は、イベント プロバイダと、実行をトリガーする条件(Cloud Firestore の書き込み、HTTPS リクエスト、Cloud Scheduler イベントなど)を定義します。

拡張機能は関数を使用しますが、拡張機能は以下を明示的に定義する extension.yaml 仕様ファイルに依存する点が、関数と異なります。

  • 拡張機能が使用する Google サービス(API)
  • 拡張機能の動作に必要なアクセスロール
  • 拡張機能の動作に必要な拡張機能固有のリソース
  • 拡張機能の構成可能なパラメータ

拡張機能は、インストールするインスタンスごとに異なる設定を使用して、プロジェクトに複数回インストールできます。

拡張機能のインスタンスをインストールすると、Firebase によって次の処理が行われます。

  1. 拡張機能のこのインスタンスに使用する設定値(パラメータ)を指定するように求められます。
  2. プロジェクトの extension.yaml ファイルにリストされている API が有効になります。
  3. 拡張機能のこのインスタンスで使用される新しいサービス アカウントが作成され、リストされているアクセスロールが割り当てられます。拡張機能インスタンスは、このサービス アカウントに付与されたアクセス権を使用してコードを実行します。
  4. リストされているリソースを拡張機能インスタンス用にプロビジョニングします(関数など)。

インストールされた拡張機能のインスタンスごとに、独自のサービス アカウントと別個にプロビジョニングされたリソースがあります。

拡張機能ディレクトリには、extension.yaml ファイルに加えて、README などの手順ファイルもあります。手順ファイルには、後で行う構成タスクに役立つ情報や、この拡張機能の一般的な使用方法が記述されています。

インストール後は、拡張機能を再構成(新しいパラメータ値を指定)することも、拡張機能を新しいバージョンに更新することもできます。また、拡張機能は、いつでもプロジェクトからアンインストールできます。

Firebase CLI と Firebase コンソールのどちらでも、拡張機能をインストール、表示、管理できます。

実装パス

拡張機能を見つける

Extensions Hub で利用可能な拡張機能をご覧ください。

拡張機能を評価、インストール、構成する

アプリまたはプロジェクトのニーズを解決する拡張機能が見つかったら、Extensions エミュレータを使用して拡張機能を評価してから、Firebase コンソールまたは Firebase CLI 経由でインストールします。

拡張機能を構成して、アプリやプロジェクトに合わせてカスタマイズします。

拡張機能を管理する

インストールされている拡張機能の表示と管理は、Firebase コンソールまたは Firebase CLI で行います。

次のステップ