本頁面說明如何在 Extensions Hub 中發布擴充功能。
事前準備
如要發布擴充功能,首先你必須 以擴充功能發布商的身分註冊。
可驗證的來源
凡是在 Extensions Hub 上發布的擴充功能,都必須有可公開驗證的擴充功能 來源。與其直接將擴充功能原始碼上傳至擴充功能 當你指定來源位置後,Extension Hub 就會下載該來源位置 並開始建構
目前,這代表您的擴充功能原始碼會公開顯示 GitHub 存放區
透過可驗證的來源上傳影片有幾項好處:
- 使用者可以檢查擴充功能特定修訂版本的原始碼 後續的安裝作業
- 可以確保只上傳自己想要上傳的內容,無法上傳 例如處理中的工作或暫存檔案。
建議的開發週期
Firebase Extensions 開發工具支援上傳預先發布版 方便您測試額外資訊 擴充功能安裝程序與要存取的
這項功能提供開發週期,如下所示:
使用 Firebase 模擬器套件。
從本機原始碼安裝擴充功能,在實際專案中測試擴充功能:
firebase ext:install /path/to/extension
firebase deploy --only extensions
將預先發布版上傳至 Extensions Hub (請參閱下方說明)。發布 可以執行更廣泛測試的安裝連結,並上傳更多 預先發布版
將最終版穩定版上傳至 Extensions Hub (請見下方說明),然後提交 以供審查擴充功能通過審查後就會發布到 擴充功能中心。
遞增
extension.yaml
中的版本號碼,並重複此週期: 新的擴充功能
上傳新的額外資訊
首次上傳額外資訊的步驟如下:
選用:將程式碼修訂至公開 GitHub 存放區。
執行 Firebase CLI 的
ext:dev:upload
指令:GitHub
firebase ext:dev:upload your_publisher_id/your_extension_id
本機原始碼
cd /path/to/extension
firebase ext:dev:upload your_publisher_id/your_extension_id --local
您會在指令叫用中指定以下項目:
您註冊的發布商 ID。
用於識別擴充功能的 ID 字串。為擴充功能命名 格式如下:
firebase-product-description-of-tasks-performed
。 例如:firestore-bigquery-export
這個指令會提示您提供下列資訊:
如要從 GitHub 上傳:
GitHub 中擴充功能存放區的網址。請注意, 存放區可包含多個副檔名 不重複的根層級
首次上傳新的擴充功能時,存放區會 註冊為擴充功能的標準來源。
含有擴充功能的存放區中的目錄。
您要建構擴充功能版本的修訂版本 Git 參考資料 資料來源這可以是修訂版本雜湊、標記或分支版本名稱。
上傳版本的發布階段。
alpha
、beta
和rc
(候選) 階段正在上傳 供測試人員安裝的預先發布版。請選擇任一階段 初始上傳新額外資訊stable
階段用於發布公開版本 擴充功能中心,上傳stable
版本後,系統會自動啟動 審查,確認通過後就會發布擴充功能
請注意,未指定版本號碼,此值來自於
extension.yaml
檔案。上傳預先發布版擴充功能版本時, 階段和上傳編號都會附加至版本舉例來說extension.yaml
指定 1.0.1 版,您上傳了候選版。 就會產生1.0.1-rc.0
版;上傳其他版本時 同一版本的候選項目會自動遞增計數 產生1.0.1-rc.1
,依此類推
上傳預先發布版擴充功能後,您現在可以將 並與其他人合作進行測試使用者可透過其中一個選項安裝擴充功能 方式:
使用控制台:使用者只要點選連結即可安裝擴充功能 格式如下:
https://console.firebase.google.com/project/_/extensions/install?ref=your_publisher_id/your_extension_id@version
您可以將直接連結分享給測試人員。
使用 CLI:使用者可以傳遞擴充功能,藉此安裝擴充功能 套用至
ext:install
指令的 ID 字串:firebase ext:install your_publisher_id/your_extension_id@version \ --project=destination_project_id
上傳更新版本
上傳擴充功能的第一個版本後,即可上傳更新 修正問題、新增功能,或推進發布階段。 當您上傳新版本時, Firebase 控制台會提示已安裝的擴充功能進行升級。
如何上傳更新:
選用:將程式碼提交至公開 Git 存放區。
執行 Firebase CLI 的
ext:dev:upload
指令:GitHub
firebase ext:dev:upload your_publisher_id/your_extension_id
系統這次不會提示您指定 GitHub 存放區 擴充功能根目錄 。如果您曾重構存放區結構 遷移至新的存放區
--root
和--repo
引數。本機原始碼
cd /path/to/extension
firebase ext:dev:upload your_publisher_id/your_extension_id --local
提交發布擴充功能
準備好公開發布擴充功能時,請按照下列步驟操作:
將程式碼提交至公開 Git 存放區。(公開發布時必須提供)。
執行 Firebase CLI 的
ext:dev:upload
指令,並將stable
指定為 發布階段:firebase ext:dev:upload your_publisher_id/your_extension_id
如果您先前已發布擴充功能的某個版本, 穩定版會自動提交擴充功能以供審查。
如果你上傳了擴充功能的第一個穩定版本,請在以下位置找到擴充功能: 發布商資訊主頁 然後按一下「發布到擴充功能中心」。
提交後,審查程序可能需要幾天的時間才能完成。接受擴充功能後,副檔名會是 已發布至 Extensions Hub如果遭拒,系統會發送說明 原因;接著,您可以解決回報的問題並重新送審。
為加快審查速度,並提高第一次嘗試的機會, 提交前,請仔細檢查下列事項:
- 你已充分測試擴充功能和安裝程序。
- 說明文件內容完整且正確,可在 Firebase 中正確顯示 控制台。
- 您的發布商名稱和品牌必須清楚正確地表明您的是 內容。
- 擴充功能的名稱、說明和圖示必須清楚明確地呈現 做為擴充功能的用途
- 您已套用實用且準確的標記。
- 您已在
extension.yaml
中宣告目前使用的所有 Google 和非 Google API。 和所有事件類型 - 你只要求取得擴充功能所需的存取權 功能,並且已向使用者明確說明需要這類存取權的原因。
- 您的來源檔案已根據《
Apache-2.0
條款》獲得明確授權。
管理已上傳和發布的擴充功能
列出您上傳的擴充功能
如要列出您透過發布商 ID 上傳的額外資訊,請採取以下任一種做法: 包括:
發布商資訊主頁
前往發布商資訊主頁查看。
Firebase CLI
執行 ext:dev:list
指令:
firebase ext:dev:list your_publisher_id
查看已上傳額外資訊的使用情形
如要查看透過發布商 ID 上傳的額外資訊使用情形,請按照下列步驟操作: 下列其中一項:
發布商資訊主頁
發布商資訊主頁會顯示所有 和每項額外資訊的個別指標
Firebase CLI
執行 ext:dev:usage
指令:
firebase ext:dev:usage your_publisher_id
淘汰擴充功能的版本
某個時候,您可能會想淘汰舊版擴充功能。適用對象 例如,如果您發布的新版本修正了重大錯誤 對依附元件進行重要更新時,防範新威脅 使用者無須安裝舊版本,並鼓勵現有使用者升級。
如要淘汰某個擴充功能的版本,請執行下列任一操作:
發布商資訊主頁
- 在發布商資訊主頁中,按一下擴充功能即可開啟 查看詳細資料。
- 選擇要淘汰的版本。
- 按一下「Deprecate version」。
Firebase CLI
執行 ext:dev:deprecate
指令:
firebase ext:dev:deprecate your_publisher_id/your_extension_id versions \
[--message "deprecation_message"]
您可以指定單一版本或特定版本範圍。範例:
1.0.2
1.1.0-1.1.7
<1.2.0
1.1.*
已淘汰的擴充功能版本不會列在 Extensions Hub 中,因此無法 。如果使用者的專案版本已淘汰,系統會顯示 鼓勵他們升級的訊息仍可使用並重新設定 在這段期間。
如果擴充功能的每個版本都已淘汰,則使用擴充功能 且系統會從擴充功能中心將其撤除。上傳新版本 遭到淘汰的擴充功能後,系統會自動開始審查,並在 接受建議,然後再次發布到 Extensions Hub。
如要撤銷淘汰項目,請使用發布商資訊主頁或執行 Firebase CLI 的
ext:dev:undeprecate
指令:
firebase ext:dev:undeprecate your_publisher_id/your_extension_id versions
附錄:排解建構錯誤
上傳擴充功能時,後端會先使用 下列程序:
複製您的 GitHub 存放區,並查看指定的來源參考資料。
在每個函式中執行
npm clean-install
,安裝 NPM 依附元件 在extension.yaml
中指定的來源目錄 (請參閱sourceDirectory
Cloud 函式資源)。注意事項:
每個
package.json
檔案都必須有對應的package-lock.json
檔案。詳情請參閱 npm-ci。安裝依附元件時將不會執行安裝後指令碼。 如果您的原始碼版本必須使用安裝後指令碼 重構後才能上傳
在每個函式來源中執行
npm run build
,藉此建構程式碼 在extension.yaml
中指定的目錄。
系統只會將擴充功能的根目錄儲存在最終的擴充功能中 即將共享的套件
上傳擴充功能時如果發生建構錯誤,請複製版本 本機新目錄中的步驟,直到沒有錯誤,然後 再次上傳。