Trước khi triển khai cho 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 trên máy, đồng thời 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 các thành viên trong nhóm xem và kiểm thử các thay đổi, Hosting có thể tạo các 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ừ yêu cầu lấy dữ liệu.
Trước khi bắt đầu
Hãy hoàn tất các bước được nêu trên Hosting trang Bắt đầu, cụ thể là các nhiệm vụ sau:
- Cài đặt hoặc cập nhật CLI Firebase 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 lại 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 dung và cấu hình Hosting trên máy. 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 Hosting được mô phỏng và config, cũng như tài nguyên dự án được mô phỏng (không bắt buộc) (các hàm, cơ sở dữ liệu và quy tắc).
(Không bắt buộc) Theo mặc định, ứng dụng được lưu trữ cục bộ của bạn sẽ tương tác với thực, không được mô phỏng, tài nguyên của dự án (các hàm, cơ sở dữ liệu, quy tắc, v.v.). Thay vào đó, bạn có thể kết nối ứng dụng của mình để sử dụng bất kỳ dự án được mô phỏng nào (không bắt buộc) mà bạn đã định cấu hình. Tìm hiểu thêm: Realtime Database | Cloud Firestore | Cloud Functions
Từ gốc của thư mục 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 các thay đổi đối với URL cục bộ, hãy làm mới trình duyệt của bạn.
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 của 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 bạn 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 của bạn trước khi phát hành, bạn có thể sử dụng kênh xem trước.
Sau khi bạn triển khai cho kênh xem trước, Firebase sẽ phân phát ứng dụng web của bạn tại "preview URL" ("URL xem trước") là URL tạm thời và có thể chia sẻ. Khi sử dụng URL xem trước, ứng dụng web của bạn tương tác với phần phụ trợ thực cho tất cả các tài nguyên của dự án (bằng ngoại lệ của mọi "được ghim" trong các lần viết lại config).
Xin lưu ý rằng mặc dù khó đoán URL xem trước (vì URL này chứa một hàm băm ngẫu nhiên), nhưng URL này là công khai. Vì vậy, bất kỳ ai biết URL đều có thể truy cập URL đó.
Từ gốc của thư mục 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ã này sẽ được dùng để tạo URL bản xem trướ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ề. Ứng dụng sẽ trông tương tự như sau:
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 cùng một lệnh. Hãy nhớ chỉ định cùng một
CHANNEL_ID
trong lệnh.
Tìm hiểu về cách quản lý kênh xem trước, bao gồm cả cách đặt thời 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 thực hiện thay đổi cho một yêu cầu lấy dữ liệ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 với mọi người, hãy triển khai nội dung và cấu hình Hosting lên kênh phát trực tiếp. Firebase cung cấp một vài các lựa chọn 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).
Cách 1: Sao chép từ kênh xem trước sang kênh phát trực tiếp
Tùy chọn này giúp bạn yên tâm rằng bạn đang triển khai cho kênh trực tiếp của mình chính xác nội dung và cấu hình mà bạn đã thử nghiệm trong một kênh xem trước. Tìm hiểu thêm giới thiệu nhân bản 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 Hosting mặc định, 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í là trong các dự án Firebase khác nhau.
SOURCE_CHANNEL_ID: Đây là giá trị nhận dạng kênh hiện đang phân phát phiên bản bạn muốn triển khai cho kênh trực tiếp của mình.
- Đối với kênh phát trực tiếp, hãy sử dụng
live
làm mã nhận dạng kênh.
- Đối với kênh phát trực tiếp, hãy sử dụng
Xem các thay đổi của bạn (bước tiếp theo).
Cách 2: Triển khai từ thư mục dự án cục bộ sang kênh phát trực tiếp
Lựa chọn này cho phép bạn linh hoạt điều chỉnh các cấu hình dành riêng cho 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ừ gốc của thư mục 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 của bạn cho 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
(chẳng hạn nhưPROJECT_ID.web.app
)
SITE_ID.firebaseapp.com
(chẳng hạn 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ế triển khai ở một trang web Hosting cụ thể, chỉ định mục tiêu triển khai trong lệnh CLI.
Thông tin và 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 bình luận vào một lần 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 của Hosting trong bảng điều khiển Firebase. Ví dụ:
firebase deploy --only hosting -m "Deploying the best new feature ever."
Thêm tác vụ theo tập lệnh trước khi triển khai 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 nhiệm vụ trước hoặc sau khi triển khai. Ví dụ: một trình bổ trợ 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 CLI Firebase để biết thêm thông tin chi tiết.
Lưu nội dung đã triển khai vào bộ nhớ đệm
Khi có yêu cầu đối với nội dung tĩnh, Firebase Hosting sẽ tự động lưu nội dung trên CDN vào bộ nhớ đệm. Nếu bạn triển khai lại nội dung trang web, Firebase tự động xoá tất cả nội dung tĩnh đã lưu vào bộ nhớ đệm trên CDN để sẽ 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 tính năng lưu nội dung động vào bộ nhớ đệm.
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 được tải qua SSL (HTTPS),kể cả mọi tập lệnh bên ngoài. Hầu hết các trình duyệt đều không cho phép người dùng tải "nội dung hỗn hợp" (SSL và không phải SSL lưu lượng truy cập).
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 đó trên máy rồi 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 khác của việc lưu trữ:
Hãy xem tài liệu đầy đủ về CLI Firebase.
Chuẩn bị ra mắt ứng dụng:
- Thiết lập ngân sách cảnh báo cho dự án của bạn trong bảng điều khiển Google Cloud.
- Theo dõi Việc sử dụng và thanh toán trang tổng quan trong bảng điều khiển Firebase để có được thông tin tổng thể về trên nhiều dịch vụ Firebase. Bạn cũng có thể truy cập Hosting Sử dụng trang tổng quan để xem thêm thông tin sử dụng chi tiết.
- Xem danh sách kiểm tra khi phát hành Firebase.