Trước khi triển khai lên trang web đang hoạt động, bạn nên xem và kiểm thử các thay đổi. Firebase Hosting cho phép bạn xem và kiểm thử các thay đổi cục bộ, cũng như tương tác với các tài nguyên dự án phụ trợ được mô phỏng. Nếu bạn cần đồng đội xem và kiểm thử các thay đổi, thì Hosting có thể tạo URL xem trước tạm thời, có thể chia sẻ cho trang web của bạn. Chúng tôi thậm chí còn hỗ trợ tính năng tích hợp GitHub để triển khai từ một yêu cầu gộp các thay đổi mà bạn thực hiện vào mã nguồn ban đầu (pull request).
Trước khi bắt đầu
Hoàn tất các bước được liệt kê trên trang Hosting Bắt đầu sử dụng, cụ thể là các nhiệm vụ sau:
- Cài đặt hoặc cập nhật Firebase CLI lên phiên bản mới nhất.
- Kết nối thư mục dự án cục bộ (chứa nội dung của ứng dụng) với dự án Firebase.
Bạn có thể tuỳ ý triển khai nội dung và cấu hình Hosting của ứng dụng, nhưng đây không phải là điều kiện tiên quyết cho các bước trên trang này.
Bước 1: Kiểm thử cục bộ
Nếu đang thực hiện các lần lặp nhanh hoặc muốn ứng dụng 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 dungHosting 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ộ.
Hosting là một phần của Firebase Local Emulator Suite, cho phép ứng dụng của bạn tương tác với nội dung và cấu hình Hosting được mô phỏng, cũng như các tài nguyên dự án được mô phỏng (hàm, cơ sở dữ liệu và quy tắc) (không bắt buộc).
(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, 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
Từ thư mục gốc của dự án cục bộ, hãy chạy lệnh sau:
firebase emulators:start
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).Để 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 trên máy tính nhưng không truy cập được 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"
}
}
Bước 2: Xem trước và chia sẻ
Nếu muốn người khác xem các thay đổi đối với ứng dụng web trước khi phát hành, bạn có thể sử dụng các kênh xem trước.
Sau khi bạn triển khai lên một kênh xem trước, Firebase sẽ phân phát ứng dụng web của bạn tại một "URL xem trước", đây là một URL tạm thời có thể chia sẻ. Khi sử dụng URL xem trước, ứng dụng web của bạn sẽ tương tác với phần phụ trợ thực cho tất cả các tài nguyên dự án (ngoại trừ mọi hàm "được ghim" trong cấu hình viết lại).
Xin lưu ý rằng mặc dù URL xem trước rất khó đoán (vì chứa một mã băm ngẫu nhiên), nhưng chúng là công khai. Vì vậy, bất kỳ ai biết URL đều có thể truy cập vào URL đó.
Từ thư mục gốc của dự án cục bộ, hãy chạy lệnh sau:
firebase hosting:channel:deploy CHANNEL_ID
Thay thế CHANNEL_ID bằng một chuỗi không có dấu cách (ví dụ:
feature_mission-2-mars). Mã nhận dạng này sẽ được dùng để tạo URL xem trước được liên kết với kênh xem trước.Mở ứng dụng web của bạn tại URL xem trước do CLI trả về. URL này sẽ có dạng như sau: như thế này:
PROJECT_ID--CHANNEL_ID-RANDOM_HASH.web.appĐể cập nhật URL xem trước bằng các thay đổi, hãy chạy lại lệnh đó. Đảm bảo bạn chỉ định cùng một
CHANNEL_IDtrong lệnh.
Tìm hiểu về cách quản lý các kênh xem trước, bao gồm cả cách đặt thời gian hết hạn của kênh.
Firebase Hosting hỗ trợ một Hành động GitHub tự động tạo và cập nhật URL xem trước khi bạn cam kết các thay đổi đối với một yêu cầu gộp các thay đổi mà bạn thực hiện vào mã nguồn ban đầu (pull request). Tìm hiểu cách thiết lập và sử dụng Hành động GitHub này.
Bước 3: Triển khai trực tiếp
Khi bạn đã sẵn sàng chia sẻ các thay đổi của mình với mọi người, hãy triển khai Hosting nội dung và cấu hình lên kênh trực tiếp. Firebase cung cấp một số lựa chọn khác nhau cho bước này tuỳ thuộc vào trường hợp sử dụng của bạn (xem các lựa chọn bên dưới).
Lựa chọn 1: Sao chép từ một kênh xem trước sang kênh trực tiếp
Lựa chọn này giúp bạn tự tin rằng bạn đang triển khai lên kênh trực tiếp nội dung và cấu hình chính xác mà bạn đã kiểm thử trong một kênh xem trước. Tìm hiểu thêm về việc sao chép các phiên bản.
Từ bất kỳ thư mục nào, hãy chạy lệnh sau:
firebase hosting:clone SOURCE_SITE_ID:SOURCE_CHANNEL_ID TARGET_SITE_ID:live
Thay thế từng phần giữ chỗ bằng nội dung sau:
SOURCE_SITE_ID và TARGET_SITE_ID: Đây là mã nhận dạng của các trang web Hosting chứa các kênh.
- Đối với trang web mặc định Hosting, hãy sử dụng mã dự án Firebase.
- Bạn có thể chỉ định các trang web nằm trong cùng một dự án Firebase hoặc thậm chí trong các dự án Firebase khác nhau.
SOURCE_CHANNEL_ID: Đây là mã nhận dạng cho kênh hiện đang phân phát phiên bản mà bạn muốn triển khai lên kênh trực tiếp.
- Đối với kênh trực tiếp, hãy sử dụng
livelàm mã nhận dạng kênh.
- Đối với kênh trực tiếp, hãy sử dụng
Xem các thay đổi của bạn (bước tiếp theo).
Lựa chọn 2: Triển khai từ thư mục dự án cục bộ lên kênh trực tiếp
Lựa chọn này giúp bạn linh hoạt điều chỉnh các cấu hình dành riêng cho kênh trực tiếp hoặc triển khai ngay cả khi bạn chưa sử dụng kênh xem trước.
Từ thư mục gốc của dự án cục bộ, hãy chạy lệnh sau:
firebase deploy --only hosting
Xem các thay đổi của bạn (bước tiếp theo).
Bước 4: Xem các thay đổi trên trang web đang hoạt động
Cả hai lựa chọn trên đều triển khai nội dung và cấu hình Hosting lên các trang web sau:
Các miền con do Firebase cung cấp cho trang web Hosting mặc định và mọi trang web Hosting bổ sung:
SITE_ID.web.app(nhưPROJECT_ID.web.app)
SITE_ID.firebaseapp.com(nhưPROJECT_ID.firebaseapp.com)Mọi miền tuỳ chỉnh mà bạn đã kết nối với(các) trang web Hosting
Để hạn chế việc triển khai cho một trang web Hosting cụ thể, hãy chỉ định mục tiêu triển khai trong lệnh CLI.
Thông tin và các hoạt động triển khai khác
Thêm nhận xét cho quá trình triển khai
Bạn có thể tuỳ ý thêm nhận xét vào quá trình triển khai. Nhận xét này sẽ hiển thị cùng với thông tin triển khai khác trên trang tổng quan trong bảng điều khiển.HostingFirebase Ví dụ:
firebase deploy --only hosting -m "Deploying the best new feature ever."
Thêm các tác vụ theo tập lệnh trước và sau khi triển khai
Bạn có thể tuỳ ý kết nối các tập lệnh shell với lệnh firebase deploy để thực hiện các tác vụ trước hoặc sau khi triển khai. Ví dụ: một hook sau khi triển khai có thể thông báo cho quản trị viên về việc triển khai nội dung trang web mới. Tham khảo tài liệu
Firebase CLI để biết thêm thông tin.
Lưu vào bộ nhớ đệm nội dung đã triển khai
Khi có yêu cầu đối với nội dung tĩnh, Firebase Hosting sẽ tự động lưu nội dung vào bộ nhớ đệm trên CDN. Nếu bạn triển khai lại nội dung của trang web, Firebase sẽ tự động xoá tất cả nội dung tĩnh được lưu vào bộ nhớ đệm trên CDN để các yêu cầu mới nhận được nội dung mới của bạn.
Xin lưu ý rằng bạn có thể định cấu hình việc lưu vào bộ nhớ đệm nội dung động.
Phân phát qua HTTPS
Đảm bảo rằng tất cả các tài nguyên bên ngoài không được lưu trữ trên Firebase Hosting đều được tải qua SSL (HTTPS),bao gồm mọi tập lệnh bên ngoài. Hầu hết các trình duyệt không cho phép người dùng tải "nội dung hỗn hợp" (lưu lượng truy cập SSL và không phải SSL).
Xoá tệp
Trong Firebase Hosting, cách chính để xoá các tệp đã chọn khỏi một trang web đã triển khai là xoá các tệp đó cục bộ, sau đó triển khai lại.
Các bước tiếp theo
Tích hợp với GitHub và lặp lại nội dung đã xem trước bằng cách thiết lập Hành động GitHub.
Tìm hiểu về các tính năng lưu trữ khác:
Xem tài liệu đầy đủ về Firebase CLI.
Chuẩn bị ra mắt ứng dụng:
- Thiết lập cảnh báo ngân sách cho dự án của bạn trong bảng điều khiển Google Cloud.
- Theo dõi trang tổng quan Mức sử dụng và thanh toán trong bảng điều khiển Firebase để nắm được bức tranh tổng thể về mức sử dụng dự án của bạn trên nhiều dịch vụ Firebase. Bạn cũng có thể truy cập vào trang tổng quan Hosting Mức sử dụng để biết thông tin chi tiết hơn về mức sử dụng.
- Xem lại danh sách kiểm tra khi ra mắt Firebase.