Tạo nguyên mẫu và kiểm thử ứng dụng web bằng Trình mô phỏng lưu trữ Firebase

Trước khi bắt đầu tạo mẫu và kiểm thử ứng dụng web bằng trình mô phỏng Firebase Hosting, hãy đảm bảo rằng bạn hiểu quy trình làm việc Firebase Local Emulator Suite tổng thể, đồng thời cài đặt và định cấu hình Local Emulator Suite cũng như xem lại lệnh CLI của bộ này.

Bạn cũng nên làm quen với các tính năng và quy trình triển khai của Firebase Hosting. Hãy bắt đầu bằng phần giới thiệu về Firebase Hosting.

Tôi có thể làm gì với trình mô phỏng Firebase Hosting?

Trình mô phỏng Firebase Hosting cung cấp tính năng mô phỏng cục bộ có độ chân thực cao cho các dịch vụ Hosting, cung cấp nhiều chức năng có trong sản xuất Hosting. Trình mô phỏng Hosting cho phép bạn:

  • Tạo mẫu cho các trang web tĩnh và ứng dụng web mà không phải chịu phí lưu trữ hoặc phí truy cập
  • Tạo mẫu, kiểm thử và gỡ lỗi các hàm HTTPS trước khi triển khai vào trang web Hosting
  • Kiểm thử các trang web và ứng dụng web trong các quy trình tích hợp liên tục được chứa trong vùng chứa.

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ắt đầu trình mô phỏng, trong CLI, hãy chạy firebase use trong thư mục làm việc. Hoặc bạn có thể truyền cờ --project cho mỗi lệnh trình mô phỏng command.

Local Emulator Suite hỗ trợ mô phỏng các dự án Firebase thực tế và dự án bản trình diễn.

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

Dự án Firebase thực tế 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 tế có tài nguyên trực tiếp, chẳng hạn như phiên bản cơ sở dữ liệu, nhóm lưu trữ buckets, 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 project.

Khi làm việc với các dự án Firebase thực tế, 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 bất kỳ sản phẩm nào 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 trực tiếp (phiên bản cơ sở dữ liệu, nhóm lưu trữ, hàm, v.v.).

Bản trình diễn

Dự án Firebase bản trình diễn không có cấu hình Firebase thực tế và không có tài nguyên trực tiếp. 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 bản trình diễn có tiền tố demo-.

Khi làm việc với các dự án Firebase bản trình diễn, ứ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à 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 các dự án bản trình diễn 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à hoá đơn
  • Hỗ trợ ngoại tuyến tốt hơn vì không cần truy cập vào Internet để tải cấu hình SDK xuống.

Quy trình làm việc tạo mẫu cốt lõi

Nếu đang thực hiện các lần lặp nhanh hoặc muốn ứng dụng của mình tương tác với các tài nguyên dự án phụ trợ được mô phỏng, bạn có thể kiểm thử nội dung Hosting và cấu hình cục bộ. Khi kiểm thử cục bộ, Firebase sẽ phân phát ứng dụng web của bạn tại một URL được lưu trữ cục bộ.

  1. (Không bắt buộc) Theo mặc định, ứng dụng được lưu trữ cục bộ sẽ tương tác với các tài nguyên dự án thực tế, chứ không phải được mô phỏng (hàm, cơ sở dữ liệu, quy tắc, v.v.). Thay vào đó, bạn có thể tuỳ ý kết nối ứng dụng để sử dụng bất kỳ tài nguyên dự án được mô phỏng nào mà bạn đã định cấu hình. Tìm hiểu thêm: Realtime Database | Cloud Firestore | Cloud Functions

  2. Từ gốc của thư mục dự án cục bộ, hãy chạy lệnh sau:

    firebase emulators:start
  3. Mở ứng dụng web của bạn tại URL cục bộ do CLI trả về (thường là http://localhost:5000).

  4. Để cập nhật URL cục bộ bằng các thay đổi, hãy làm mới trình duyệt.

Kiểm thử từ các thiết bị cục bộ khác

Theo mặc định, trình mô phỏng chỉ phản hồi các yêu cầu từ localhost. Điều này có nghĩa là bạn sẽ có thể truy cập vào nội dung được lưu trữ từ trình duyệt web của máy tính nhưng không thể truy cập từ các thiết bị khác trên mạng. Nếu muốn kiểm thử từ các thiết bị cục bộ khác, hãy định cấu hình firebase.json như sau:

"emulators": {
    // ...

    "hosting": {
      "port": 5000,
      "host": "0.0.0.0"
    }
  }

Tạo mã thông báo xác thực cho quy trình tích hợp liên tục

Nếu quy trình tích hợp liên tục của bạn dựa vào Lưu trữ Firebase, thì bạn cần đăng nhập bằng mã thông báo để chạy firebase emulators:exec. Các trình mô phỏng khác không yêu cầu đăng nhập.

Để tạo mã thông báo, hãy chạy firebase login:ci trên môi trường cục bộ. Bạn không nên thực hiện việc này từ hệ thống CI. Làm theo hướng dẫn để xác thực. Bạn chỉ cần thực hiện bước này một lần cho mỗi dự án, vì mã thông báo sẽ hợp lệ trên các bản dựng. Bạn nên coi mã thông báo như mật khẩu; hãy đảm bảo rằng mã thông báo được giữ bí mật.

Nếu môi trường CI cho phép bạn chỉ định các biến môi trường có thể được sử dụng trong tập lệnh xây dựng, chỉ cần tạo một biến môi trường có tên là FIREBASE_TOKEN, với giá trị là chuỗi mã truy cập. CLI sẽ tự động chọn biến môi trường và trình mô phỏng sẽ bắt đầu đúng cách.FirebaseFIREBASE_TOKEN

Là biện pháp cuối cùng, bạn có thể chỉ cần đưa mã thông báo vào tập lệnh xây dựng, nhưng hãy đảm bảo rằng các bên không đáng tin cậy không có quyền truy cập. Đối với phương pháp mã hoá cứng này, bạn có thể thêm --token "YOUR_TOKEN_STRING_HERE" vào lệnh firebase emulators:exec.

Bước tiếp theo?