使用擴展模擬器來評估擴展

在您的應用程式中使用擴充模擬器之前,請確保您了解 Firebase 本機模擬器套件的整體工作流程,並安裝和設定本機模擬器套件並查看其CLI 命令

本指南還假設您熟悉Firebase 擴充功能以及如何在 Firebase 應用中使用它們

我可以使用擴充模擬器做什麼?

借助擴展模擬器,您可以在安全的本地環境中安裝和管理擴展,並更好地了解其功能,同時最大限度地降低計費成本。模擬器在本機上運行擴充功能的功能,包括使用 Cloud Firestore、即時資料庫、Firebase Cloud Storage、驗證和 Pub/Sub 模擬器的後台事件觸發功能,以及在 Cloud Functions v2 中實現的 Eventarc 觸發功能。

選擇 Firebase 項目

Firebase 本機模擬器套件模擬單一 Firebase 專案的產品。

若要選擇要使用的項目,請在啟動模擬器之前,在 CLI 中在工作目錄中執行firebase use 。或者,您可以將--project標誌傳遞給每個模擬器指令。

本機模擬器套件支援模擬真實的Firebase 專案和演示專案。

項目類型特徵與模擬器一起使用
真實的

真正的 Firebase 專案是您建立和配置的專案(很可能透過 Firebase 控制台)。

真實專案具有即時資源,例如資料庫執行個體、儲存桶、函數或您為該 Firebase 專案設定的任何其他資源。

在處理真實的 Firebase 專案時,您可以為任何或所有受支援的產品運行模擬器。

對於您未模擬的任何產品,您的應用程式和程式碼將與即時資源(資料庫執行個體、儲存桶、函數等)進行互動。

示範

示範 Firebase 專案沒有真正的Firebase 配置,也沒有即時資源。這些項目通常透過代碼實驗室或其他教程存取。

示範項目的項目 ID 具有demo-前綴。

使用示範 Firebase 專案時,您的應用程式和程式碼與模擬器互動。如果您的應用程式嘗試與未運行模擬器的資源進行交互,則該程式碼將會失敗。

我們建議您盡可能使用演示項目。好處包括:

  • 設定更簡單,因為您無需建立 Firebase 專案即可運行模擬器
  • 更強的安全性,因為如果您的程式碼意外調用非模擬(生產)資源,則不會發生資料變更、使用和計費
  • 更好的離線支持,因為無需訪問互聯網即可下載 SDK 配置。

安裝和評估擴展

使用擴充模擬器來評估擴充是否滿足您的需求非常簡單。

假設您對觸發電子郵件 ( firestore-send-email )擴充功能感興趣,但以下工作流程涵蓋了任何擴充功能。使用本機模擬器執行時,觸發電子郵件將自動使用 Cloud Firestore 和 Cloud Functions 模擬器。

要在本地評估擴展:

  1. 將擴充功能新增至本機擴充清單。擴充清單是擴充實例及其配置的清單。

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

    執行上述指令將提示您配置最新版本的firebase/firestore-send-email擴充並將設定儲存到清單中,但不會將設定部署到您的專案中。有關詳細信息,請參閱使用清單管理擴充配置

  2. 像平常一樣啟動本地模擬器套件。

    firebase emulators:start

現在,使用清單中列出的firestore-send-email擴充實例,本機模擬器套件會將該擴充功能的原始程式碼下載到~/.cache/firebase/extensions 。下載原始檔案後,本機模擬器套件將啟動,您將能夠觸發擴充功能的任何後台觸發功能,並將您的應用程式連接到本機模擬器套件以測試它們與您的應用程式的整合。

您可以使用模擬器套件 UI 將資料新增至電子郵件文件集合,並根據觸發電子郵件擴充功能的要求設定其他後端資源。

或者,對於持續整合工作流程等非互動式測試環境,您可以編寫一個測試腳本來評估擴展,該擴展除其他步驟外,還可以填充必要的 Cloud Firestore 資料並觸發函數。然後,您將呼叫本機模擬器套件來執行您的測試腳本:

firebase emulators:exec my-test.sh

使用擴展模擬器進行測試與生產有何不同

擴展模擬器可讓您以與生產體驗緊密匹配的方式測試擴充。然而,與生產行為存在一些差異。

雲端身分管理

Firebase 模擬器套件不會嘗試複製或遵守任何與 IAM 相關的運行行為。模擬器遵守提供的 Firebase 安全性規則,但在通常使用 IAM 的情況下,例如設定呼叫服務帳戶和權限的 Cloud Functions,模擬器不可配置,並將使用開發人員電腦上的全域可用帳戶,類似於直接執行本地腳本。

觸發類型限制

目前,Firebase 本機模擬器套件僅支援 HTTP 請求觸發函數、擴展的 Eventarc 自訂事件觸發器以及 Cloud Firestore、即時資料庫、Firebase Cloud Storage、驗證和 Pub/Sub 的後台事件觸發函數。要評估使用其他類型的觸發函數的擴充程序,您需要在測試 Firebase 專案中安裝擴充功能

接下來是什麼?