擴充功能資訊清單是擴充功能執行個體及其清單 儲存空間設定透過資訊清單,您可以:
- 與他人共用擴充功能設定
- 將擴充功能設定複製到不同專案 (例如 將測試環境專案投入正式環境專案)
- 一次部署所有擴充功能
- 使用 Firebase Local Emulator Suite測試擴充功能如何與應用程式搭配運作
- 將擴充功能設定修訂為原始碼控管
- 在 CI/CD 管道中加入擴充功能
擴充功能資訊清單包含兩個部分:
firebase.json
的extensions
區段,這是執行個體的地圖 擴充功能版本參照的 ID。例如:{ "extensions": { "my-bigquery-extension": "firebase/firestore-bigquery-export@^0.1.18", "my-image-resizer": "firebase/storage-resize-images@^0.1.22", } }
.env
檔案,內含每個擴充功能的設定 執行個體,位於 Firebase 專案的extensions/
子目錄中 目錄。舉例來說,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 CLI 管理擴充功能資訊清單
您可以透過 --local
選項執行大部分 Firebase CLI 的 ext:
指令
更新擴充功能資訊清單,不必實際變更專案的
目前的設定
例如:
firebase ext:install --local firebase/firestore-bigquery-export
執行上述指令會提示您設定最新版本的
firebase/firestore-bigquery-export
擴充功能,並將設定儲存至
資訊清單,但不會將設定部署至您的專案。
以下列舉幾個修改擴充功能資訊清單的指令範例:
# ext:configure changes the params for an extension instance in your extensions manifest
$ firebase ext:configure my-bigquery-extension --local
# ext:update --local updates an instance in your extensions manifest
# to the latest version of that extension
$ firebase ext:update my-bigquery-extension --local
# You can also specify a version if you don't want to update to the latest version
$ firebase ext:update my-bigquery-extension firebase/firestore-bigquery-export@0.1.10 --local
# ext:uninstall --local removes an instance from your extensions manifest
$ firebase ext:uninstall my-bigquery-extension --local
匯出專案的擴充功能設定
如要將專案目前的擴充功能設定儲存到資訊清單,請執行下列步驟: 包括:
- 如果尚未設定 Firebase CLI,請先完成這項操作。
- 在殼層提示中,切換至專案目錄。(您的專案
目錄包含
firebase.json
檔案)。 - 執行
ext:export
指令:firebase ext:export
ext:export
指令會在 firebase.json
中新增 extensions
區段
檔案。此外,ext:export
指令會建立 extensions
目錄
其中包含您安裝的每個擴充功能執行個體 .env
檔案。這些
檔案含有每個執行個體的設定參數
使用 Firebase Local Emulator Suite 測試擴充功能設定
在擴充功能資訊清單中新增部分擴充功能執行個體後,即可 請透過 Local Emulator Suite 進行測試。
-
- 如要以互動方式執行模擬器套件,請執行以下指令:
firebase emulators:start
- 如要執行模擬器套件並執行測試指令碼,請執行下列指令:
firebase emulators:exec my-test.sh
- 如要以互動方式執行模擬器套件,請執行以下指令:
現在,如果您在資訊清單中列出擴充功能執行個體,
Local Emulator Suite 會將這些擴充功能的原始碼下載至
~/.cache/firebase/extensions
。下載完成後
Local Emulator Suite 將啟動,屆時您可以觸發下列任一
擴充功能背景觸發的函式,並將應用程式連結至模擬器
,測試他們與應用程式的整合情形。
將擴充功能設定部署至專案
在擴充功能資訊清單中新增部分擴充功能執行個體後,即可 請使用 Firebase CLI 將其部署至專案當您透過 Cloud Shell 的指令列介面 擴充功能資訊清單,安裝、更新並設定所有擴充功能 將資訊清單中的例項一次匯入專案
如何部署擴充功能資訊清單:
- 從殼層提示,變更為包含已儲存
延伸模組設定(這是包含
firebase.json
。如果你剛執行ext:export
,你就在右側 目錄中)。 - 請執行
deploy
指令。如要將擴充功能部署至專案 也指定--project=
:firebase deploy --only extensions –-project=YOUR_PROJECT_ID
deploy
指令會驗證每個執行個體設定,並詢問您是否要
以便從目的地專案中刪除
firebase.json
,然後部署所有的擴充功能執行個體。
專案專屬的擴充功能設定
已儲存的擴充功能設定可用於部署到
例如測試專案和正式環境專案執行時
但是每項專案的部分參數值可能不盡相同。
可以使用專案專屬的 .env
檔案來達成這個目標:
- 在
extensions/EXTENSION_INSTANCE_ID.env.YOUR_PROJECT_ID
中加入不同專案不同的參數值 - 請在
extensions/EXTENSION_INSTANCE_ID.env
中加入共用參數值。
有時候,在模擬
擴充功能:舉例來說,您可以提供測試 API 金鑰,而不是
第一個是正式環境請將這些參數放入 .local
檔案中:
- 將您要在模擬時使用的非機密參數放入
extensions/EXTENSION_INSTANCE_ID.env.local
- 將密鑰參數值加到
extensions/EXTENSION_INSTANCE_ID.secret.local