Firebase 擴充功能會執行特定工作或工作組,以回應 HTTP 要求或觸發其他 Firebase 和 Google 產品 (例如 Firebase 雲端通訊、Cloud Firestore 或 Pub/Sub) 的事件。
您可以自行建構擴充功能,供個人使用或在 Firebase 擴充功能中心與全世界分享。舉例來說,擴充功能可以執行應用程式定期需要的特定工作,或是讓您更輕鬆地存取貴公司的 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 存取角色,以及您希望 使用者設定- 最低數量為
PREINSTALL
、POSTINSTALL
和CHANGELOG
檔案 說明文件。這些檔案有助於使用者 擴充功能的用途、使用方式,以及您更新的內容個人中心 同時提供圖示,協助使用者認出您的擴充功能。當使用者探索、安裝及管理擴充功能時,Firebase 控制台、Firebase CLI 和擴充功能中心會顯示這些檔案的內容。
建立擴充功能後,您可以使用 Firebase CLI 將其安裝到專案中,或發布到擴充功能中心,讓任何人都能在專案中發現並安裝該擴充功能。
我的擴充功能可以與哪些產品互動?
由於 Firebase 擴充功能會使用 Cloud Functions 執行工作,因此您可以從兩個角度思考可能的整合問題:哪些產品可以觸發擴充功能的函式?和「觸發後,擴充功能的函式可以與哪些產品互動?」
支援的函式觸發事件
手動觸發條件
首先,您可以手動觸發函式,Firebase Extensions 和 Cloud 函式支援兩種手動觸發函式的方式:
- HTTP 觸發事件:將函式部署至 HTTP 端點
- 可呼叫的函式:直接從 iOS 呼叫 Cloud Functions。 Android 或網路用戶端程式碼 (使用 Firebase 用戶端 SDK)。
透過擴充功能公開 HTTP 端點,擴充功能就能與任何支援 webhook 的網路服務整合。透過可呼叫的函式,安裝擴充功能的使用者就能將 Firebase SDK 用作用戶端程式庫,存取擴充功能實作的 API。
Firebase 服務觸發條件
大多數 Firebase 產品會發出事件,可觸發擴充功能的 Cloud Functions。
- 數據分析:在 Analytics 記錄事件時觸發函式
- 應用程式發布:在應用程式發布觸發 快訊
- 驗證:在使用者建立及刪除帳戶時觸發函式
- Cloud Firestore:在建立、更新或刪除網頁時觸發函式
- Cloud Storage:當物件上傳、封存或從值區刪除時觸發函式
- Crashlytics:在 Crashlytics 觸發快訊時觸發函式
- Performance Monitoring:在 Performance Monitoring 時觸發函式 觸發快訊時
- 即時資料庫:在建立、更新或刪除資料時觸發函式
- 遠端設定:在參數更新時觸發函式
- 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 函式執行的部分重點功能:
- 讀取、寫入,以及與任何 Firebase 或 Google Cloud 互動 這項服務採用 支援的 IAM 角色。
- 與提供網路 API 的任何第三方服務合作。
- 如果您提供網路 API,請與自訂服務合作。
- 執行大部分 JavaScript 程式庫,包括 TensorFlow.js、Express.js 等。
如何建構擴充功能
「入門」教學課程會逐步引導您 建構、測試及發布完整擴充功能的程序 。
閱讀入門指南後,您可以參考 個別主題指南,旨在說明建構過程中的各項工作 您自己的擴充功能:
- 編寫擴充功能的函式
- 在擴充功能中使用參數
- 為擴充功能設定適當的存取權
- 回應擴充功能生命週期事件
- 在擴充功能中加入使用者鉤子
- 為擴充功能建立使用者說明文件
- 在 Extensions Hub 上發布擴充功能
- 完整的 extension.yaml 參考資料