Sử dụng Trình mô phỏng tiện ích để đánh giá tiện ích

Trước khi sử dụng trình mô phỏng Extensions với ứng dụng, hãy đảm bảo rằng bạn hiểu quy trình làm việc tổng thể của Firebase Local Emulator Suite, đồng thời cài đặt và định cấu hình Local Emulator Suite cũng như xem lại các lệnh CLI của trình 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 tính năng 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ý các 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 khả năng của tiện ích trong khi giảm thiểu chi phí được lập hoá đơn. Trình mô phỏng chạy các hàm của tiện ích trên máy, bao gồm cả các hàm được kích hoạt bằng sự kiện 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ằng 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 khởi động trình mô phỏng, hãy chạy firebase use trong thư mục đang hoạt động của bạn trong CLI. Hoặc bạn có thể truyền cờ --project vào từng lệnh của trình mô phỏng.

Local Emulator Suite hỗ trợ mô phỏng các dự án Firebase thực tế và dự án minh hoạ.

Loại dự án Tính năng Sử dụng với trình mô phỏng
Real

Dự án Firebase thực là dự án mà bạn đã tạo và định cấu hình (thường là thông qua bảng điều khiển Firebase).

Dự án thực tế có các tài nguyên đang hoạt động, chẳng hạn như các phiên bản cơ sở dữ liệu, bộ chứa 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 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 thực tế (thực thể cơ sở dữ liệu, bộ chứa lưu trữ, hàm, v.v.).

Bản trình diễn

Dự án Firebase minh hoạ không có cấu hình Firebase thực và không có tài nguyên thực tế. Các dự án này thường được truy cập thông qua 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ố demo-.

Khi làm việc với các dự án Firebase minh hoạ, ứng dụng và mã của bạn chỉ tương tác với trình mô phỏng. 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à trình mô phỏng không chạy, thì mã đó sẽ không thành công.

Bạn nên sử dụng dự án minh hoạ bất cứ khi nào có thể. Các lợi ích bao gồm:

  • Thiết lập dễ dàng 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 (môi trường thực 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ì không cần truy cập 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 Gửi email kích hoạt (firestore-send-email), mặc dù quy trình sau đây áp dụng cho mọi tiện ích. Khi chạy bằng trình mô phỏng cục bộ, Trigger Email sẽ tự động sử dụng trình mô phỏng Cloud Firestore và Cloud Functions.

Cách đánh giá tiện ích trên máy:

  1. 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 chúng.

    firebase ext:install --local firebase/firestore-send-email

    Khi chạy lệnh trên, bạn sẽ được nhắc định cấu hình phiên bản mới nhất của tiện ích firebase/firestore-send-email và lưu cấu hình vào tệp kê khai, nhưng lệnh này sẽ không triển khai cấu hình cho 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ê khai

  2. Bắt đầu Local Emulator Suite như bình thường.

    firebase emulators:start

Bây giờ, 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 trong nền của tiện ích, đồng thời kết nối ứng dụng với Local Emulator Suite để kiểm thử khả năng tích hợp của các hàm đó với ứng dụng.

Bạn có thể sử dụng Emulator Suite UI để thêm dữ liệu vào tập hợ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 Trigger 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. Trong số các bước khác, tập lệnh 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. Sau đó, bạn sẽ gọi Local Emulator Suite để thực thi tập lệnh kiểm thử:

firebase emulators:exec my-test.sh

Sự khác biệt giữa việc kiểm thử bằng trình mô phỏng Extensions và môi trường thực 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 thực tế. Tuy nhiên, có một số điểm khác biệt so với hành vi trong môi trường thực tế.

Cloud IAM

Bộ công cụ mô phỏng Firebase không cố gắng sao chép hoặc tuân theo 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 thường sử dụng IAM, chẳng hạn như để đặt tài khoản dịch vụ gọi Cloud Functions và do đó là các quyền, thì trình mô phỏng không thể 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 phát triể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 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ằng yêu cầu HTTP, trình kích hoạt sự kiện tuỳ chỉnh Eventarc cho tiện ích và các hàm được kích hoạt bằng sự kiện 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 thử nghiệm.

Bước tiếp theo là gì?