Firebase プロジェクトに拡張機能をインストールして構成した後、その構成を保存して別のプロジェクトにデプロイできます。保存した構成には、各インスタンスのバージョンやインストール時に指定したパラメータ値など、インストールされているすべての拡張機能インスタンスの情報が含まれています。
この機能には次のような用途があります。
- 他のプロジェクトでプロジェクトの拡張機能の構成を再作成する
- 拡張機能の構成を他のユーザーと共有する
- 拡張機能の構成をソース管理に commit する
- CI / CD パイプラインに拡張機能を追加する
プロジェクトの拡張機能の構成を保存する
プロジェクトの拡張機能の構成を保存するには、次の操作を行います。
- まだ設定していない場合は、Firebase CLI を設定します。
- シェル プロンプトでプロジェクト ディレクトリに移動します(プロジェクト ディレクトリには
firebase.json
ファイルが含まれています)。 ext:export
コマンドを実行します。firebase ext:export –-project=YOUR_PROJECT_ID
ext:export
コマンドを実行すると、firebase.json
ファイルに extensions
セクションが追加されます。次に例を示します。
{
"extensions": {
"my-bigquery-extension": "firebase/firestore-bigquery-export@^0.1.18",
"my-image-resizer": "firebase/storage-resize-images@^0.1.22",
}
}
また、ext:export
コマンドを実行すると、extensions
ディレクトリが作成され、インストールされているそれぞれの拡張機能インスタンスの .env
ファイルが格納されます。これらのファイルには、各インスタンスの構成パラメータが含まれています。たとえば、storage-resize-images
のインスタンスの .env
ファイルは次のようになります。
IMAGE_TYPE=jpeg LOCATION=us-central1 IMG_BUCKET=${param:PROJECT_ID}.appspot.com IMG_SIZES=100x100 DELETE_ORIGINAL_FILE=false
拡張機能の構成をプロジェクトにデプロイする
プロジェクトの拡張機能の構成を保存したら、Firebase CLI を使用してプロジェクトにデプロイできます。拡張機能の構成をデプロイすると、保存した構成内のすべての拡張機能インスタンスを一括でプロジェクトにインストール、更新、構成できます。
拡張機能の構成をデプロイするには:
- シェル プロンプトで、保存済みの拡張機能の構成を含むディレクトリに移動します(これは
firebase.json
を含むディレクトリです。ext:export
を実行したばかりの場合は、すでに目的のディレクトリにいます)。 deploy
コマンドを実行して、拡張機能をデプロイするプロジェクトを指定します。firebase deploy --only extensions –-project=YOUR_PROJECT_ID
deploy
コマンドを実行すると、各インスタンスの構成が検証され、firebase.json
にリストされていない拡張機能インスタンスを宛先プロジェクトから削除するかどうかが尋ねられます。その後、すべての拡張機能インスタンスがデプロイされます。
プロジェクト固有の拡張機能の構成
保存した拡張機能の構成を使用すると、複数の異なるプロジェクト(ステージング用プロジェクトや本番環境プロジェクトなど)をデプロイできます。これを行う場合は、一部のパラメータ値を、プロジェクトごとに異なる値にする必要が生じることがあります。プロジェクト固有の .env ファイルを使用すれば、それが可能です。プロジェクト間で異なるパラメータ値は extensions/${extensionInstanceId}.env.${projectIdOrAlias} に配置し、共有のパラメータ値は extensions/${extensionInstanceId}.env に配置します。