Firebase Data Connect cung cấp cho bạn một trình mô phỏng cục bộ để tạo mẫu thử nghiệm từ đầu đến cuối , cũng như quy trình tích hợp liên tục và triển khai liên tục (CI/CD):
- Trình mô phỏng Data Connect tương tác với một thực thể cơ sở dữ liệu PGLite tích hợp cục bộ để cho phép bạn tạo mẫu thử nghiệm cho các truy vấn và đột biến, đồng thời kiểm thử mã ứng dụng trong một môi trường hoàn toàn cục bộ.
- Bạn cũng có thể dùng trình mô phỏng Data Connect cho công việc không tương tác. Trình mô phỏng này cho phép bạn chạy các chương trình kiểm thử tự động và phù hợp để sử dụng với quy trình làm việc CI/CD. Điều này hữu ích khi lược đồ của bạn ổn định và bạn muốn tạo mẫu thử nghiệm cũng như kiểm thử mã phía máy khách.
Hướng dẫn này trình bày chi tiết hơn về cách cài đặt và sử dụng trình mô phỏng so với hướng dẫn bắt đầu nhanh.
Cài đặt trình mô phỏng Data Connect
Trước khi cài đặt Local Emulator Suite để sử dụng Data Connect trình mô phỏng, bạn cần:
- Node.js phiên bản 18.0 trở lên.
Cài đặt Firebase CLI và thiết lập thư mục dự án
Cài đặt Firebase CLI theo hướng dẫn cài đặt. Hãy nhớ cập nhật thường xuyên vì trình mô phỏng Data Connect đang trong quá trình phát triển tích cực với các bản sửa lỗi và tính năng mới.
Nếu chưa làm, hãy khởi chạy thư mục làm việc hiện tại dưới dạng một dự án Firebase, làm theo lời nhắc để chỉ định những sản phẩm cần sử dụng:
firebase init
Đặt hoặc sửa đổi cấu hình Local Emulator Suite
Nếu bạn khởi động trình mô phỏng Data Connect từ tiện ích Data Connect VS Code, thì trình mô phỏng sẽ được cài đặt cho bạn (nếu cần).
Bạn có thể dùng Firebase CLI để cài đặt trình mô phỏng theo cách thủ công cùng với các thành phần đã chọn khác của Local Emulator Suite. Lệnh này sẽ khởi động một trình hướng dẫn định cấu hình cho phép bạn chọn các trình mô phỏng mà bạn quan tâm, tải các tệp nhị phân trình mô phỏng tương ứng xuống và đặt cổng trình mô phỏng nếu các giá trị mặc định không phù hợp.
firebase init emulatorsSau khi cài đặt một trình mô phỏng, hệ thống sẽ không kiểm tra bản cập nhật và không tải thêm bản cập nhật tự động xuống cho đến khi bạn cập nhật phiên bản Firebase CLI.
Chọn một dự án Firebase
Trong quy trình thiết lập, Firebase CLI sẽ nhắc bạn chọn hoặc tạo một dự án Firebase. Nếu bạn chọn một dự án hiện có mà bạn đã thiết lập bằng Data Connect trong bảng điều khiển Firebase, thì cấu hình bạn đã chọn ở đó sẽ được đề xuất.
Thiết lập trình mô phỏng
Định cấu hình trình mô phỏng
Việc chạy quy trình firebase init sẽ hướng dẫn bạn các lựa chọn thiết lập trình mô phỏng.
Giống như các trình mô phỏng khác trong Local Emulator Suite, các tham số cấu hình
được lưu trữ trong các tệp dự án cục bộ.
- Tệp
firebase.jsonchứa các giá trị gán cổng trình mô phỏng.- Khoá
emulators:uikhông áp dụng cho trình mô phỏng Data Connect.
- Khoá
Làm việc với các tài nguyên Data Connect cục bộ và sản xuất
Nếu bạn muốn đảm bảo không ảnh hưởng đến tài nguyên sản xuất, hãy đặt projectID demo- hoặc đảm bảo mã ứng dụng của bạn được trang bị công cụ để kết nối với trình mô phỏng, như thảo luận trong một phần sau.
Khởi động trình mô phỏng
Nếu bạn đang chạy trình mô phỏng theo cách không tương tác, chẳng hạn như đối với quy trình làm việc CI/CD, hãy khởi động trình mô phỏng bằng tuỳ chọn exec.
firebase emulators:exec ./path/to/test-script.shNếu bạn đang tích hợp các truy vấn và đột biến được xác định trước trong mã ứng dụng và đang sử dụng trình mô phỏng dành riêng cho việc kiểm thử ứng dụng, thì bạn có thể sử dụng tuỳ chọn start cho công việc tương tác. Bạn cũng có thể khởi động trình mô phỏng từ tiện ích Data Connect VS Code.
firebase emulators:startTrang bị công cụ cho mã ứng dụng để giao tiếp với trình mô phỏng
Thiết lập cấu hình trong ứng dụng hoặc các lớp kiểm thử để tương tác với trình mô phỏng Data Connect như sau.
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
Sử dụng trình mô phỏng để kiểm thử và tích hợp liên tục
Chạy hình ảnh được chứa trong vùng chứa Local Emulator Suite
Việc cài đặt và định cấu hình Local Emulator Suite bằng các vùng chứa trong một thiết lập CI thông thường rất đơn giản.
Bạn cần lưu ý một số vấn đề:
- Các tệp nhị phân trình mô phỏng được cài đặt và lưu vào bộ nhớ đệm tại
~/.cache/firebase/emulators/. Bạn có thể muốn thêm đường dẫn này vào cấu hình bộ nhớ đệm CI để tránh tải xuống lặp lại. - Nếu không có tệp
firebase.jsontrong kho lưu trữ, bạn phải thêm một đối số dòng lệnh vào lệnhemulators:starthoặcemulators:execđể chỉ định những trình mô phỏng cần khởi động. Ví dụ:--only dataconnect.
Xoá cơ sở dữ liệu giữa các chương trình kiểm thử
Để đặt lại môi trường kiểm thử giữa các lần chạy, Firebase khuyên bạn nên:
- Viết các đột biến chuyên dụng để xử lý những nội dung sau:
- Trong quá trình thiết lập, hãy điền dữ liệu bắt đầu vào một thực thể cơ sở dữ liệu cục bộ.
- Trong quá trình huỷ thiết lập, hãy xoá dữ liệu đã sửa đổi khỏi thực thể cơ sở dữ liệu sau kiểm thử.
Sự khác biệt giữa trình mô phỏng Data Connect và môi trường sản xuất
Trình mô phỏng Data Connect mô phỏng nhiều tính năng của sản phẩm phía máy chủ. Tuy nhiên, bạn cần lưu ý một số trường hợp ngoại lệ:
- Phiên bản và cấu hình chi tiết của PGLite có thể khác với phiên bản của thực thể Cloud SQL sản xuất.
- Nếu bạn đang sử dụng trình mô phỏng để phát triển bằng tính năng tích hợp Vertex API và pgvector của Data Connect, thì các lệnh gọi đến Cloud Vertex API sẽ được thực hiện trực tiếp thay vì thông qua tính năng tích hợp Vertex của Cloud SQL. Tuy nhiên, các lệnh gọi đến API sản xuất vẫn được thực hiện, nghĩa là bạn phải sử dụng một dự án Firebase thực, không thể sử dụng dự án
demo-và sẽ phải chịu chi phí của Vertex API.