使用 Extensions 資訊清單管理專案設定

擴充功能資訊清單是擴充功能執行個體及其清單 儲存空間設定透過資訊清單,您可以:

  • 與他人共用擴充功能設定
  • 將擴充功能設定複製到不同專案 (例如 將測試環境專案投入正式環境專案)
  • 一次部署所有擴充功能
  • 使用 Firebase Local Emulator Suite測試擴充功能如何與應用程式搭配運作
  • 將擴充功能設定修訂為原始碼控管
  • 在 CI/CD 管道中加入擴充功能

擴充功能資訊清單包含兩個部分:

  • firebase.jsonextensions 區段,這是執行個體的地圖 擴充功能版本參照的 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

匯出專案的擴充功能設定

如要將專案目前的擴充功能設定儲存到資訊清單,請執行下列步驟: 包括:

  1. 如果尚未設定 Firebase CLI,請先完成這項操作。
  2. 在殼層提示中,切換至專案目錄。(您的專案 目錄包含 firebase.json 檔案)。
  3. 執行 ext:export 指令:
    firebase ext:export

ext:export 指令會在 firebase.json 中新增 extensions 區段 檔案。此外,ext:export 指令會建立 extensions 目錄 其中包含您安裝的每個擴充功能執行個體 .env 檔案。這些 檔案含有每個執行個體的設定參數

使用 Firebase Local Emulator Suite 測試擴充功能設定

在擴充功能資訊清單中新增部分擴充功能執行個體後,即可 請透過 Local Emulator Suite 進行測試。

  1. 安裝並設定 Local Emulator Suite

  2. 啟動 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 的指令列介面 擴充功能資訊清單,安裝、更新並設定所有擴充功能 將資訊清單中的例項一次匯入專案

如何部署擴充功能資訊清單:

  1. 從殼層提示,變更為包含已儲存 延伸模組設定(這是包含 firebase.json。如果你剛執行 ext:export,你就在右側 目錄中)。
  2. 請執行 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