Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

使用擴展模擬器評估擴展

透過集合功能整理內容 你可以依據偏好儲存及分類內容。

在將 Extensions 模擬器與您的應用一起使用之前,請確保您了解 Firebase Local Emulator Suite 的整體工作流程,並安裝和配置Local Emulator Suite 並查看其CLI 命令

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

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

使用擴展模擬器,您可以在安全的本地環境中安裝和管理擴展,並更好地了解它們的功能,同時最大限度地降低計費成本。模擬器在本地運行您的擴展程序的功能,包括使用 Cloud Firestore、實時數據庫、Cloud Storage for Firebase、身份驗證和 Pub/Sub 模擬器的後台事件觸發功能,以及在 Cloud Functions v2 中實現的 Eventarc 觸發功能。

選擇一個 Firebase 項目

Firebase 本地模擬器套件模擬單個 Firebase 項目的產品。

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

Local Emulator Suite 支持模擬真實的Firebase 項目和演示項目。

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

真正的 Firebase 項目是您創建和配置的項目(很可能通過 Firebase 控制台)。

真實項目具有實時資源,例如數據庫實例、存儲桶、函數或您為該 Firebase 項目設置的任何其他資源。

在處理真正的 Firebase 項目時,您可以為任何或所有受支持的產品運行模擬器。

對於您未模擬的任何產品,您的應用程序和代碼將與實時資源(數據庫實例、存儲桶、函數等)進行交互。

演示

演示 Firebase 項目沒有真正的Firebase 配置,也沒有實時資源。這些項目通常通過代碼實驗室或其他教程訪問。

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

使用演示 Firebase 項目時,您的應用和代碼與模擬器交互。如果您的應用程序嘗試與未運行模擬器的資源進行交互,則該代碼將失敗。

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

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

安裝和評估擴展

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

假設您對觸發電子郵件 ( firestore-send-email )擴展感興趣,儘管以下工作流程涵蓋任何擴展。使用本地模擬器運行時,Trigger 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擴展程序實例,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 模擬器允許您以與生產體驗非常匹配的方式測試擴展。但是,與生產行為存在一些差異。

雲 IAM

Firebase Emulator Suite 不會嘗試複製或尊重任何與 IAM 相關的運行行為。模擬器遵守提供的 Firebase 安全規則,但在通常使用 IAM 的情況下,例如設置調用服務帳戶的 Cloud Functions 並因此設置權限,模擬器是不可配置的,並將使用您的開發人員機器上的全局可用帳戶,類似於直接運行本地腳本。

觸發類型限制

目前,Firebase 本地模擬器套件僅支持 HTTP 請求觸發函數、Eventarc 擴展自定義事件觸發器,以及 Cloud Firestore、實時數據庫、Cloud Storage for Firebase、身份驗證和 Pub/Sub 的後台事件觸發函數。要評估使用其他類型觸發函數的擴展程序,您需要在測試 Firebase 項目中安裝您的擴展程序

接下來是什麼?