Bạn có thể thiết lập một hoặc nhiều trang web Firebase Hosting trong một dự án Firebase. Vì tất cả trang web đều nằm trong cùng một dự án Firebase, nên tất cả trang web đều có thể truy cập vào các tài nguyên Firebase khác của dự án.
- Mỗi trang web có cấu hình lưu trữ riêng.
- Mỗi trang web lưu trữ một tập hợp nội dung riêng.
- Mỗi trang web có thể có một hoặc nhiều miền được liên kết.
Bằng cách thiết lập nhiều trang web Hosting trong cùng một dự án Firebase, bạn có thể chia sẻ tài nguyên Firebase giữa các trang web và ứng dụng liên quan dễ dàng hơn. Để ví dụ: nếu bạn thiết lập blog, bảng điều khiển quản trị và ứng dụng công khai dưới dạng cá nhân các trang web trong cùng một dự án Firebase, chúng đều có thể có chung Cơ sở dữ liệu người dùng Firebase Authentication, đồng thời vẫn có các miền duy nhất hoặc nội dung.
Bước 1: Cập nhật phiên bản CLI Firebase
Truy cập các tính năng mới nhất của Firebase Hosting trước đang cập nhật lên phiên bản mới nhất của CLI Firebase.
Bước 2: Thêm trang web bổ sung
Thêm các trang web khác vào dự án Firebase bằng một trong các phương thức sau:
Sử dụng quy trình làm việc trong Hosting trang của bảng điều khiển Firebase
Dùng lệnh Firebase CLI:
firebase hosting:sites:create SITE_ID
Sử dụng API REST Hosting:
projects.sites.create
Đối với mỗi phương thức nêu trên, bạn sẽ chỉ định một SITE_ID
dùng để tạo
miền con mặc định được Firebase cấp phép cho trang web:
SITE_ID.web.app
SITE_ID.firebaseapp.com
Vì SITE_ID
được sử dụng cho các URL này nên mã trang web có như sau
các yêu cầu:
- Phải là nhãn tên máy chủ hợp lệ, nghĩa là không được chứa
.
,_
, v.v. - Không được vượt quá 30 ký tự
- Phải là duy nhất trên toàn hệ thống trong Firebase
Đối với mỗi trang web, bạn cũng có thể tuỳ ý thêm miền tuỳ chỉnh để phân phát cùng một nội dung và thành nhiều URL.
Xoá trang web phụ
Xoá các trang web không mong muốn khỏi dự án Firebase bằng một trong các cách sau phương thức:
Sử dụng quy trình làm việc trong Hosting trang của bảng điều khiển Firebase
Dùng lệnh Firebase CLI:
firebase hosting:sites:delete SITE_ID
Dùng API REST Hosting:
projects.sites.delete
Lưu ý rằng bạn không thể xoá trang web mặc định có cùng SITE_ID
với
mã dự án Firebase của bạn.
Bước 3: Thiết lập mục tiêu triển khai cho các trang web
Khi bạn có nhiều trang web và chạy các lệnh triển khai CLI Firebase,
CLI cần có cách để thông báo chế độ cài đặt nào sẽ được triển khai cho mỗi
của bạn. Với tính năng triển khai mục tiêu, bạn có thể xác định
một trang web cụ thể có TARGET_NAME
trong trang web
Tệp cấu hình firebase.json
và trong Firebase lệnh CLI của bạn cho
thử nghiệm hoặc triển khai cho trang web của mình.
Để tạo mục tiêu triển khai và áp dụng TARGET_NAME
cho trang web Hosting, hãy chạy
lệnh CLI sau đây từ gốc của thư mục dự án:
firebase target:apply hosting TARGET_NAME RESOURCE_IDENTIFIER
Trong đó các thông số:
TARGET_NAME – tên riêng biệt (do bạn tự xác định) cho Hosting trang web mà bạn đang triển khai
RESOURCE_IDENTIFIER –
SITE_ID
cho trang web Hosting như đã liệt kê trong dự án Firebase của bạn
Ví dụ: nếu đã tạo hai trang web (myapp-blog
và myapp-app
) trong dự án Firebase, bạn có thể áp dụng một TARGET_NAME
duy nhất (tương ứng là blog
và app
) cho từng trang web bằng cách chạy các lệnh sau:
firebase target:apply hosting blog myapp-blog
firebase target:apply hosting app myapp-app
Chế độ cài đặt cho các mục tiêu triển khai được lưu trữ trong tệp .firebaserc
trong
dự án, nên bạn chỉ cần thiết lập mục tiêu triển khai một lần cho mỗi
dự án.
Bước 4: Xác định cấu hình lưu trữ cho mỗi trang web
Sử dụng TARGET_NAME
được áp dụng của trang web khi bạn xác định máy chủ lưu trữ
trong
firebase.json
.
Nếu tệp
firebase.json
xác định cấu hình cho nhiều trang web, sử dụng định dạng mảng:{ "hosting": [ { "target": "blog", // "blog" is the applied TARGET_NAME for the Hosting site "myapp-blog" "public": "blog/dist", // contents of this folder are deployed to the site "myapp-blog" // ... }, { "target": "app", // "app" is the applied TARGET_NAME for the Hosting site "myapp-app" "public": "app/dist", // contents of this folder are deployed to the site "myapp-app" // ... "rewrites": [...] // You can define specific Hosting configurations for each site } ] }
Nếu tệp
firebase.json
của bạn xác định cấu hình chỉ cho một trang web, không cần thiết phải sử dụng định dạng mảng:{ "hosting": { "target": "blog", "public": "dist", // ... "rewrites": [...] } }
Bước 5: Kiểm thử cục bộ, xem trước các thay đổi và triển khai cho trang web của bạn
Chạy bất kỳ lệnh nào sau đây từ gốc của thư mục dự án cục bộ.
Lệnh | Mô tả |
---|---|
firebase emulators:start --only hosting |
Mô phỏng nội dung và cấu hình Hosting của Trang web Hosting mặc định tại trang web được lưu trữ cục bộ URL |
firebase emulators:start --only hosting:TARGET_NAME |
Mô phỏng nội dung và cấu hình Hosting của thành phần được chỉ định Hosting trang web tại URL được lưu trữ cục bộ |
firebase hosting:channel:deploy \ |
Triển khai nội dung và cấu hình Hosting của Trang web Hosting mặc định tại URL xem trước |
firebase hosting:channel:deploy \ |
Triển khai nội dung và cấu hình Hosting của thành phần được chỉ định Hosting trang web tại một URL xem trước |
firebase deploy --only hosting |
Triển khai nội dung và cấu hình Hosting cho kênh phát trực tiếp của tất cả trang web Hosting được định cấu hình trong firebase.json
|
firebase deploy --only hosting:TARGET_NAME |
Triển khai nội dung và cấu hình Hosting cho kênh trực tiếp trên trang web Hosting được chỉ định |
Lệnh | Mô tả |
---|---|
(không nên dùng; hãy dùng emulators:start )firebase serve --only hosting
|
Phân phát nội dung và cấu hình Hosting của Trang web Hosting mặc định tại trang web được lưu trữ cục bộ URL |
(không nên dùng; hãy dùng emulators:start )firebase serve --only hosting:TARGET_NAME
|
Phân phát nội dung và cấu hình Hosting của thành phần được chỉ định Hosting trang web tại URL được lưu trữ cục bộ |