擴充功能發布商總覽

Firebase 擴充功能會執行特定工作或工作集,以回應 HTTP 要求或觸發其他 Firebase 和 Google 產品 (例如 Firebase 雲端通訊、Cloud Firestore 或 Pub/Sub) 的事件。

您可以自行建立個人用途擴充功能,或在 Firebase Extensions Hub 中與全世界分享。舉例來說,擴充功能可以執行應用程式定期需要的特定工作,或是讓您更輕鬆地存取貴公司的 API。建立好擴充功能後,即可與其他人共用。這些使用者可安裝及設定擴充功能,以便在自己的 Firebase 專案中使用。

擴充功能的結構

擴充功能包含三個主要元件:

  • Cloud Functions 程式碼 (以 JavaScript 或 TypeScript 撰寫)
  • 說明擴充功能的中繼資料
  • 說明文件,協助使用者設定及使用擴充功能

如要開發擴充功能,請將這些元件組合成下列結構:

example-extension
├── functions
│   ├── integration-tests
│   │   ├── extensions
│   │   │   └── example-extension.env
│   │   ├── firebase.json
│   │   └── integration-test.spec.js
│   ├── index.js
│   └── package.json
├── README.md
├── PREINSTALL.md
├── POSTINSTALL.md
├── CHANGELOG.md
├── icon.png
└── extension.yaml
  • functions 目錄包含 JavaScript 或 TypeScript 中的 Cloud Functions 程式碼。這是會根據 Firebase 和 Google 服務觸發的事件,執行擴充功能工作內容的程式碼。
  • extension.yaml 檔案含有擴充功能的相關中繼資料,例如擴充功能和 IAM 存取角色,以及您要讓使用者自行設定的所有參數。
  • PREINSTALLPOSTINSTALLCHANGELOG 檔案是擴充功能必須具備的最低文件。這些檔案可協助使用者瞭解擴充功能的功能、使用方式,以及您所做的更新。您也應提供圖示,方便使用者辨識擴充功能。當使用者探索、安裝及管理擴充功能時,Firebase 控制台、Firebase CLI 和擴充功能中心會顯示這些檔案的內容。

建立擴充功能後,您可以使用 Firebase CLI 將其安裝到專案中,或發布到擴充功能中心,讓任何人都能在專案中發現並安裝該擴充功能。

我的擴充功能可以與哪些產品互動?

由於 Firebase 擴充功能使用 Cloud Functions 來運作,因此您可以透過以下兩種方式思考整合服務的問題:「哪些產品可以觸發我的擴充功能的函式?」和「觸發後,我的擴充功能函式可與哪些產品互動?」

支援的函式觸發事件

手動觸發條件

首先,您可以手動觸發函式。Firebase Extensions 和 Cloud 函式支援兩種手動觸發函式的方式:

  • HTTP 觸發事件:將函式部署至 HTTP 端點
  • 可呼叫的函式:使用 Firebase 用戶端 SDK,直接透過 iOS、Android 或網路用戶端程式碼呼叫 Cloud Functions。

透過擴充功能公開 HTTP 端點,擴充功能就能與任何支援 webhook 的網路服務整合。透過可呼叫的函式,安裝擴充功能的使用者就能將 Firebase SDK 用作用戶端程式庫,存取擴充功能實作的 API。

Firebase 服務觸發條件

大多數 Firebase 產品會發出事件,可觸發擴充功能的 Cloud Functions。

  • Analytics:在 Analytics 記錄事件時觸發函式
  • 應用程式發布:在應用程式發布觸發快訊時觸發函式
  • 驗證:當使用者建立及刪除帳戶時觸發函式
  • Cloud Firestore:在建立、更新或刪除網頁時觸發函式
  • Cloud Storage:在值區中上傳、封存或刪除物件時觸發函式
  • Crashlytics:在 Crashlytics 觸發快訊時觸發函式
  • 成效監控:在成效監控觸發警報時觸發函式
  • 即時資料庫:在建立、更新或刪除資料時觸發函式
  • 遠端設定:更新參數時觸發函式
  • Test Lab:在 Test Lab 觸發快訊時觸發函式

Google Cloud 服務觸發條件

擴充功能也可以包含觸發數個非 Firebase Google Cloud 服務的函式:

  • Cloud Pub/Sub:擴充功能可納入函式,在事件發布至可設定的 Pub/Sub 主題時觸發。
  • Cloud Scheduler:擴充功能可納入依照設定時間表執行的函式
  • Cloud Tasks:擴充功能可包含可使用 Cloud Tasks 排入佇列的函式。Firebase Extensions 會利用這項功能,讓您 (身為擴充功能作者) 編寫可回應擴充功能「生命週期」事件的函式,包括在專案中首次安裝、升級至新版本,以及重新設定。
  • Eventarc:擴充功能可納入在事件發布至可設定的 Eventarc 管道時觸發的函式;反之,擴充功能也可以將自己的事件發布至 Eventarc 管道,讓使用者定義從擴充功能事件觸發的函式。

從函式支援

一旦觸發擴充功能的 Cloud 函式,可能的整合範圍通常是開放式的。以下是您可以透過 Cloud 函式執行的部分重點功能:

  • 讀取、寫入及以其他方式與任何使用支援的 IAM 角色FirebaseGoogle Cloud 服務互動。
  • 與任何提供網路 API 的第三方服務搭配使用。
  • 如果您提供網路 API,請與自訂服務合作。
  • 執行大部分 JavaScript 程式庫,包括 TensorFlow.jsExpress.js 等。

如何建構擴充功能

入門」教學課程會逐步引導您建構、測試及發布完整的擴充功能,是瞭解如何建構擴充功能的推薦方式。

開始使用

瀏覽過入門指南後,請參閱個別主題指南,內容說明建構自己的擴充功能所需的每個工作: