使用擴展模擬器評估擴展

在將擴展模擬器與您的應用結合使用之前,請確保您了解 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 項目中安裝擴展程序

接下來是什麼?