Firebase Data Connect 提供本機模擬器,可進行端對端原型設計,以及持續整合和持續部署 (CI/CD) 流程:
- Data Connect 模擬器會與本機整合式 PGLite 資料庫執行個體互動,讓您在完全本機的環境中,製作查詢和變動的原型,並測試用戶端程式碼。
- Data Connect 模擬器也可用於非互動式工作。您可以使用這項工具執行自動化測試,並搭配 CI/CD 工作流程。當結構定義穩定,且您想製作原型並測試用戶端程式碼時,這項功能就非常實用。
本指南比快速入門導覽課程更詳細地說明模擬器的安裝和使用方式。
安裝 Data Connect 模擬器
安裝 Local Emulator Suite 以使用 Data Connect 模擬器前,請先備妥下列項目:
- Node.js 18.0 以上版本。
安裝 Firebase CLI 並設定專案目錄
按照安裝指南安裝 Firebase CLI。 請務必定期更新,因為 Data Connect 模擬器仍處於積極開發階段,會持續修正錯誤並推出新功能。
如果您尚未將目前的工作目錄初始化為 Firebase 專案,請按照提示指定要使用的產品:
firebase init
設定或修改 Local Emulator Suite 設定
如果您是透過 Firebase VS Code 擴充功能啟動 Data Connect 模擬器,系統會視需要為您安裝模擬器。
您可以使用 Firebase CLI 手動安裝模擬器,以及 Local Emulator Suite 的其他選定元件。這個指令會啟動設定精靈,讓您選取感興趣的模擬器、下載對應的模擬器二進位檔案,以及在預設值不適用的情況下設定模擬器連接埠。
firebase init emulators
安裝模擬器後,系統不會檢查更新,也不會自動下載其他項目,直到您更新 Firebase CLI 版本為止。
選擇 Firebase 專案
在設定流程中,Firebase CLI 會提示您選擇或建立 Firebase 專案。如果您選擇使用已在 Firebase 控制台中設定的現有專案,系統會建議您使用當時選擇的設定。Data Connect
設定模擬器
設定模擬器
執行 firebase init
流程時,系統會引導您完成模擬器設定選項。
與 Local Emulator Suite 中的其他模擬器一樣,設定參數會儲存在本機專案檔案中。
firebase.json
檔案包含模擬器通訊埠指派項目。emulators:ui
金鑰不適用於 Data Connect 模擬器。
使用本機和正式版 Data Connect 資源
如要確保不會影響生產資源,請設定 demo-
projectID,或確保您的用戶端程式碼已完成檢測,可連線至模擬器 (詳見後續章節)。
啟動模擬器
如果您以非互動方式執行模擬器 (例如用於 CI/CD 工作流程),請使用 exec
選項啟動模擬器。
firebase emulators:exec ./path/to/test-script.sh
如果您在用戶端程式碼中整合預先定義的查詢和變動,並使用模擬器專門測試用戶端,可以選取 start
選項進行互動式作業。您也可以透過 VS Code 擴充功能啟動模擬器。
firebase emulators:start
檢測用戶端程式碼,與模擬器通訊
請按照下列方式設定應用程式內設定或測試類別,與 Data Connect 模擬器互動。
JavaScript
import { initializeApp } from "firebase/app"; import { connectorConfig } from "@name-of-package"; import { connectDataConnectEmulator, getDataConnect } from 'firebase/data-connect'; // TODO: Replace the following with your app's Firebase project configuration const firebaseConfig = { //... }; const app = initializeApp(firebaseConfig); const dataConnect = getDataConnect(app, connectorConfig); connectDataConnectEmulator(dataConnect, "localhost", 9399); // Make calls from your app
Kotlin Android
val connector = MoviesConnector.instance // Connect to the emulator on "10.0.2.2:9399" connector.dataConnect.useEmulator() // (Alternatively) if you're running your emulator on non-default port: connector.dataConnect.useEmulator(port = 9999) // Make calls from your app
iOS
let connector = DataConnect.dataConnect(DefaultConnectorClient.connectorConfig) // Connect to the emulator on "127.0.0.1:9399" connector.useEmulator() // (alternatively) if you're running your emulator on non-default port: connector.useEmulator(port: 9999) // Make calls from your app
使用模擬器進行測試和持續整合
執行容器化Local Emulator Suite映像檔
在一般 CI 設定中,使用容器安裝及設定 Local Emulator Suite 相當簡單。
請注意以下幾點:
- 模擬器二進位檔會安裝並快取至
~/.cache/firebase/emulators/
。建議您將這個路徑新增至 CI 快取設定,以免重複下載。 - 如果存放區中沒有
firebase.json
檔案,您必須在emulators:start
或emulators:exec
指令中加入指令列引數,指定要啟動的模擬器。例如:--only dataconnect
。
在測試之間清除資料庫
如要在執行測試之間重設測試環境,Firebase 建議:
- 編寫專用變異,以處理下列事項:
- 在設定期間,使用起始資料填入本機資料庫執行個體。
- 在拆除作業中,從測試後資料庫執行個體刪除修改過的資料。
Data Connect模擬器與正式版有何不同
Data Connect 模擬器會模擬伺服器端產品的許多功能。不過,請注意以下例外狀況:
- PGLite 的版本和詳細設定可能與正式版 Cloud SQL 執行個體的版本不同。
- 如果您使用模擬器搭配 Data Connect的 pgvector 和 Vertex API 整合功能進行開發,系統會直接呼叫 Cloud Vertex API,而不是透過 Cloud SQL 的 Vertex 整合功能。不過,系統仍會呼叫正式版 API,因此您必須使用實際的 Firebase 專案,不能使用
demo-
專案,且會產生 Vertex API 的費用。