Trước khi sử dụng Trình mô phỏng Extensions với ứng dụng của bạn, hãy đảm bảo rằng bạn hiểu quy trình tổng thể Firebase Local Emulator Suite workflow, đồng thời cài đặt và định cấu hình the Local Emulator Suite cũng như xem các lệnh CLI của bộ mô phỏng này.
Hướng dẫn này cũng giả định rằng bạn đã quen thuộc với Firebase Extensions và cách sử dụng các tiện ích này trong ứng dụng Firebase.
Tôi có thể làm gì với Trình mô phỏng Extensions?
Với trình mô phỏng Extensions, bạn có thể cài đặt và quản lý tiện ích trong một môi trường cục bộ an toàn , đồng thời hiểu rõ hơn về các tính năng của tiện ích trong khi giảm thiểu chi phí thanh toán. Trình mô phỏng chạy các hàm của tiện ích cục bộ, bao gồm cả các hàm được kích hoạt bởi sự kiện ở chế độ nền bằng cách sử dụng trình mô phỏng cho Cloud Firestore, Realtime Database, Cloud Storage for Firebase, Authentication và Pub/Sub, cũng như các hàm được kích hoạt bởi Eventarc được triển khai trong Cloud Functions phiên bản 2.
Chọn một dự án Firebase
Firebase Local Emulator Suite mô phỏng các sản phẩm cho một dự án Firebase.
Để chọn dự án cần sử dụng, trước khi bạn khởi động trình mô phỏng, hãy chạy firebase use trong thư mục làm việc của bạn trong CLI. Hoặc bạn có thể truyền
cờ --project cho từng lệnh mô phỏng
Local Emulator Suite hỗ trợ mô phỏng các dự án Firebase thực và các dự án minh hoạ.
| Loại dự án | Tính năng | Sử dụng với trình mô phỏng |
|---|---|---|
| Thực |
Dự án Firebase thực là dự án mà bạn đã tạo và định cấu hình (rất có thể thông qua bảng điều khiển Firebase). Các dự án thực có tài nguyên đang hoạt động, chẳng hạn như thực thể cơ sở dữ liệu, nhóm lưu trữ , hàm hoặc bất kỳ tài nguyên nào khác mà bạn thiết lập cho dự án Firebase đó. |
Khi làm việc với các dự án Firebase thực, bạn có thể chạy trình mô phỏng cho bất kỳ hoặc tất cả các sản phẩm được hỗ trợ. Đối với mọi sản phẩm mà bạn không mô phỏng, ứng dụng và mã của bạn sẽ tương tác với tài nguyên đang hoạt động (thực thể cơ sở dữ liệu, nhóm lưu trữ hàm, v.v.). |
| Minh hoạ |
Dự án Firebase minh hoạ không có cấu hình Firebase thực và không có tài nguyên đang hoạt động. Bạn thường truy cập vào các dự án này thông qua các lớp học lập trình hoặc các hướng dẫn khác. Mã dự án cho các dự án minh hoạ có tiền tố |
Khi làm việc với các dự án Firebase minh hoạ, ứng dụng và mã của bạn tương tác với trình mô phỏng chỉ. Nếu ứng dụng của bạn cố gắng tương tác với một tài nguyên mà không có trình mô phỏng đang chạy, thì mã đó sẽ không thành công. |
Bạn nên sử dụng các dự án minh hoạ bất cứ khi nào có thể. Các lợi ích bao gồm:
- Dễ thiết lập hơn vì bạn có thể chạy trình mô phỏng mà không cần tạo dự án Firebase
- An toàn hơn vì nếu mã của bạn vô tình gọi các tài nguyên không được mô phỏng (sản xuất), thì sẽ không có khả năng thay đổi dữ liệu, mức sử dụng và thanh toán
- Hỗ trợ ngoại tuyến tốt hơn vì bạn không cần truy cập vào Internet để tải cấu hình SDK xuống.
Cài đặt và đánh giá tiện ích
Bạn có thể dễ dàng sử dụng Trình mô phỏng Extensions để đánh giá xem một tiện ích có đáp ứng nhu cầu của bạn hay không.
Giả sử bạn quan tâm đến tiện ích Kích hoạt email
(firestore-send-email) extension,
mặc dù quy trình sau đây áp dụng cho mọi tiện ích. Khi chạy với trình mô phỏng cục bộ,
tiện ích Kích hoạt email sẽ tự động sử dụng trình mô phỏng Cloud Firestore và
Cloud Functions.
Cách đánh giá một tiện ích cục bộ:
Thêm tiện ích vào tệp kê khai tiện ích cục bộ. Tệp kê khai tiện ích là danh sách các thực thể tiện ích và cấu hình của các thực thể đó.
firebase ext:install --local firebase/firestore-send-email
Việc chạy lệnh trên sẽ nhắc bạn định cấu hình phiên bản mới nhất của tiện ích
firebase/firestore-send-emailvà lưu cấu hình vào tệp kê khai, nhưng sẽ không triển khai cấu hình đó vào dự án của bạn. Để biết thêm thông tin về vấn đề này, hãy xem bài viết Quản lý cấu hình tiện ích bằng tệp kê khaiKhởi động Local Emulator Suite như bình thường.
firebase emulators:start
Giờ đây, bằng cách sử dụng thực thể tiện ích firestore-send-email được liệt kê trong
tệp kê khai, Local Emulator Suite sẽ tải mã nguồn của
tiện ích đó xuống ~/.cache/firebase/extensions. Sau khi tải các nguồn xuống,
Local Emulator Suite sẽ khởi động và bạn có thể
kích hoạt bất kỳ hàm nào được kích hoạt ở chế độ nền của tiện ích, đồng thời kết nối
ứng dụng của bạn với Local Emulator Suite để kiểm thử quá trình tích hợp các hàm đó với ứng dụng của bạn.
Bạn có thể sử dụng Emulator Suite UI để thêm dữ liệu vào bộ sưu tập tài liệu email và thiết lập các tài nguyên phụ trợ khác theo yêu cầu của tiện ích Kích hoạt email.
Ngoài ra, đối với các môi trường thử nghiệm không tương tác như quy trình tích hợp liên tục, bạn có thể viết một kịch bản kiểm tra để đánh giá tiện ích đó. Kịch bản này sẽ điền sẵn dữ liệu Cloud Firestore cần thiết và kích hoạt các hàm, cùng với các bước khác. Sau đó, bạn sẽ gọi Local Emulator Suite để thực thi kịch bản kiểm tra của bạn:
firebase emulators:exec my-test.shSự khác biệt giữa việc kiểm thử bằng Trình mô phỏng Extensions và môi trường sản xuất
Trình mô phỏng Extensions cho phép bạn kiểm thử các tiện ích theo cách gần giống với trải nghiệm sản xuất. Tuy nhiên, có một số điểm khác biệt so với hành vi sản xuất.
Cloud IAM
Bộ công cụ mô phỏng Firebase không cố gắng sao chép hoặc tuân thủ bất kỳ hành vi nào liên quan đến IAM để chạy. Trình mô phỏng tuân thủ Quy tắc bảo mật của Firebase được cung cấp, nhưng trong những trường hợp mà IAM thường được sử dụng, chẳng hạn như để thiết lập tài khoản dịch vụ gọi Cloud Functions và do đó là các quyền, trình mô phỏng không thể định cấu hình và sẽ sử dụng tài khoản có sẵn trên toàn cầu trên máy nhà phát triển của bạn, tương tự như việc chạy trực tiếp một tập lệnh cục bộ.
Giới hạn về loại kích hoạt
Hiện tại, Firebase Local Emulator Suite chỉ hỗ trợ các hàm được kích hoạt bởi yêu cầu HTTP, trình kích hoạt sự kiện tuỳ chỉnh Eventarc cho các tiện ích và các hàm được kích hoạt bởi sự kiện ở chế độ nền cho Cloud Firestore, Realtime Database, Cloud Storage for Firebase, Authentication và Pub/Sub. Để đánh giá các tiện ích sử dụng các loại hàm được kích hoạt khác, bạn cần cài đặt tiện ích đó trong một dự án Firebase kiểm thử.
Bước tiếp theo là gì?
- Để xem một nhóm video được tuyển chọn và các ví dụ chi tiết về cách thực hiện, hãy theo dõi Danh sách phát video hướng dẫn về Trình mô phỏng Firebase.