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ả các trang web đều nằm trong cùng một dự án Firebase, nên tất cả cá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ữ bộ sưu tậ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ể dễ dàng chia sẻ tài nguyên Firebase giữa các trang web và ứng dụng có liên quan. Ví dụ: nếu bạn thiết lập blog, bảng điều khiển dành cho quản trị viên và ứng dụng công khai dưới dạng các trang web riêng lẻ trong cùng một dự án Firebase, thì tất cả các trang web này đều có thể chia sẻ cùng một cơ sở dữ liệu người dùngFirebase Authentication Firebase Authentication, đồng thời có miền hoặc nội dung riêng.
Bước 1: Cập nhật phiên bản CLI Firebase
Truy cập vào các tính năng mới nhất của Firebase Hosting bằng cách cập nhật lên phiên bản mới nhất của Firebase CLI.
Bước 2: Thêm các trang web khác
Thêm các trang web khác vào một 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 trang Hosting của Firebase bảng điều khiển
Sử dụng lệnh CLI Firebase:
firebase hosting:sites:create SITE_IDSử dụng Hosting REST API:
projects.sites.create
Đối với mỗi phương thức này, bạn sẽ chỉ định một SITE_ID dùng để tạo
các miền phụ mặc định do Firebase cung cấp cho trang web:
SITE_ID.web.appSITE_ID.firebaseapp.com
Vì SITE_ID được dùng cho các URL này, nên mã trang web có các yêu cầu sau:
- Phải là nhãn tên máy chủ hợp lệ, tức là không được chứa
.,_, v.v. - Phải có 30 ký tự trở xuống
- Phải là duy nhất trên toàn cầu trong Firebase
Đối với mỗi trang web, bạn cũng có thể tuỳ ý thêm các miền tuỳ chỉnh để phân phát cùng một nội dung và cấu hình cho nhiều URL.
Xoá trang web phụ
Xoá các trang web không mong muốn khỏi một 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 trang Hosting của Firebase bảng điều khiển
Sử dụng lệnh CLI Firebase:
firebase hosting:sites:delete SITE_IDSử dụng Hosting REST API:
projects.sites.delete
Xin 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.
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 Firebase CLI, CLI cần một cách để truyền đạt những chế độ cài đặt cần triển khai cho từng
trang web. Với mục tiêu triển khai, bạn có thể xác định duy nhất
một trang web cụ thể bằng TARGET_NAME trong tệp cấu hình firebase.json
và trong các lệnh Firebase để
kiểm thử hoặc triển khai cho các trang web.
Để tạo mục tiêu triển khai và áp dụng TARGET_NAME cho một trang web Hosting, hãy chạy
lệnh CLI sau từ thư mục gốc của dự án:
firebase target:apply hosting TARGET_NAME RESOURCE_IDENTIFIER
Trong đó, các tham số là:
TARGET_NAME — một tên duy nhất (do bạn tự xác định) cho trang web Hosting mà bạn đang triển khai
RESOURCE_IDENTIFIER —
SITE_IDcho trang web Hosting như được liệt kê trong dự án Firebase
Ví dụ: nếu bạn đã tạo hai trang web (myapp-blog và myapp-app) trong dự án Firebase
, thì bạn có thể áp dụng một TARGET_NAME duy nhất (blog và app, tương ứng) cho mỗi 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
Các chế độ cài đặt cho mục tiêu triển khai được lưu trữ trong tệp .firebaserc trong thư mục dự án
của bạn, vì vậy, 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 từng trang web
Sử dụng TARGET_NAME đã áp dụng của một trang web khi bạn xác định cấu hình lưu trữ
của trang web đó trong
firebase.json tệp.
Nếu tệp
firebase.jsonxác định cấu hình cho nhiều trang web, hãy 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.jsonchỉ xác định cấu hình cho một trang web, thì bạn không cần 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 các trang web
Chạy bất kỳ lệnh nào sau đây từ thư mục gốc của 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 của trang web Hosting mặc định tại một URL được lưu trữ cục bộHosting |
firebase emulators:start --only hosting:TARGET_NAME |
Mô phỏng nội dung Hosting và cấu hình của trang web Hosting được chỉ định tại một URL được lưu trữ cục bộ |
firebase hosting:channel:deploy \ |
Triển khai nội dung và cấu hình của trang web Hosting mặc định Hosting tại một URL xem trước |
firebase hosting:channel:deploy \ |
Triển khai nội dung Hosting và cấu hình của trang web Hosting được chỉ định 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 trực tiếp
của tất cả cá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 của trang web Hosting được chỉ định |
| Lệnh | Mô tả |
|---|---|
(không nên dùng; hãy sử dụng emulators:start thay thế)firebase serve --only hosting
|
Phân phát nội dung và cấu hình của trang web Hosting mặc định Hosting tại một URL được lưu trữ cục bộ |
(không nên dùng; hãy sử dụng emulators:start thay thế)firebase serve --only hosting:TARGET_NAME
|
Phân phát nội dung Hosting và cấu hình của trang web Hosting được chỉ định tại một URL được lưu trữ cục bộ |