使用 Extensions Emulator 評估擴充功能

在應用程式中使用 Extensions 模擬器前,請先確認 您瞭解整體 Firebase Local Emulator Suite 工作流程。 而且您需要安裝及設定 Local Emulator Suite 並查看其 CLI 指令

本指南也假設您已熟悉 Firebase Extensions 以及如何在 Firebase 應用程式中使用

Extensions 模擬器提供哪些功能?

透過 Extensions 模擬器,您可以在 提高當地安全,進一步瞭解它們的能力,同時 帳單費用模擬器會在本機執行擴充功能的函式,包括 使用模擬器來模擬在背景執行事件觸發的函式 Cloud FirestoreRealtime DatabaseCloud Storage for FirebaseAuthenticationPub/Sub,以及以 Eventarc 觸發的函式, Cloud Functions v2。

選擇 Firebase 專案

Firebase Local Emulator Suite 在單一 Firebase 專案中模擬產品。

如要選取要使用的專案,請先在 CLI 執行下列指令,再啟動模擬器 firebase use。您也可以 對每個模擬器使用 --project 標記 指令

Local Emulator Suite 支援模擬「實際」的 Firebase 專案和 demo 專案。

專案類型 功能 與模擬器搭配使用
真實

真正的 Firebase 專案是您建立及設定的專案 (很有可能 透過 Firebase 控制台進行)。

真實專案具備即時資源,例如資料庫執行個體、儲存空間 您為此 Firebase 設定的值區、函式或任何其他資源 專案。

使用實際的 Firebase 專案時 或所有支援的產品

如有任何產品並非由您模擬,應用程式和程式碼就會 會與 live 資源 (資料庫執行個體、儲存空間) 互動 值區、函式等)。

示範

示範 Firebase 專案沒有實際的 Firebase 設定, 沒有即時資源這類專案通常透過程式碼研究室或 其他教學課程

示範專案的專案 ID 含有前置字串 demo-

使用示範 Firebase 專案時,您的應用程式和程式碼會與 僅適用於模擬器。如果應用程式嘗試與資源互動 未執行模擬器時,該程式碼就會失敗。

建議您盡可能使用示範專案。Meet 具備以下優點:

  • 設定更簡單,因為您無須建立 Firebase 專案
  • 提升安全性,因為程式碼意外叫用非模擬 (實際工作環境) 資源,則任何資料都無法變更、用量和計費
  • 更完善的離線支援功能,因為不必上網也可以 下載 SDK 設定。
,瞭解如何調查及移除這項存取權。

安裝及評估擴充功能

使用 Extensions 模擬器評估擴充功能是否符合 非常簡單

假設您對觸發條件電子郵件有興趣 (firestore-send-email) 擴充功能, 下列工作流程涵蓋所有擴充功能使用本機模擬器執行時 觸發電子郵件會自動利用 Cloud FirestoreCloud Functions 模擬器。

如何在本機評估擴充功能:

  1. 在本機擴充功能資訊清單中新增擴充功能。擴充功能資訊清單 及其設定的清單

    firebase ext:install --local firebase/firestore-send-email

    執行上述指令會提示您設定最新版本的 firebase/firestore-send-email 擴充功能,並將設定儲存至 資訊清單,但不會將設定部署至您的專案。適用對象 詳情請參閱「使用資訊清單管理擴充功能設定

  2. 照常啟動 Local Emulator Suite

    firebase emulators:start

接著,請使用firestore-send-email 資訊清單,Local Emulator Suite 會下載 附加至 ~/.cache/firebase/extensions孤島 已下載,Local Emulator Suite 會啟動,讓你可以 觸發擴充功能的任何背景觸發函式,並連結 將應用程式提交至 Local Emulator Suite,藉此測試他們與應用程式的整合情形。

您可以使用 Emulator Suite UI 將資料新增至電子郵件文件集合 ,以及設定其他後端資源。

或者,適用於非互動式測試環境,例如連續 整合工作流程,您可以編寫測試指令碼來評估 其他步驟則會填入必要的 Cloud Firestore 資料 會觸發函式然後,您會叫用 Local Emulator Suite 來執行測試指令碼:

firebase emulators:exec my-test.sh

使用 Extensions 模擬器進行測試與正式版的差異

Extensions 模擬器可讓您密切測試擴充功能 這些內容就會與實際工作環境相同不過 實際工作環境的行為模式

Cloud IAM

Firebase 模擬器套件不會試圖複製或尊重任何 與執行作業的 IAM 相關行為。模擬器符合 Firebase 安全性規定 已提供規則,但在一般情況下會使用 IAM,例如 設定 Cloud Functions 叫用服務帳戶,藉此取得權限 無法設定模擬器,且會使用全域存取的帳戶 與直接執行本機指令碼類似

觸發類型限制

目前 Firebase Local Emulator Suite 僅支援 HTTP 要求觸發 函式、擴充功能的 Eventarc 自訂事件觸發條件,以及背景 事件觸發函式,適用於 Cloud FirestoreRealtime DatabaseCloud Storage for FirebaseAuthenticationPub/Sub。評估額外資訊 使用其他觸發的函式類型,您必須 安裝擴充功能

接下來呢?