Bạn có thể thiết lập một hoặc nhiều trang web Lưu trữ Firebase 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 của mình.
- Mỗi trang web lưu trữ bộ sưu tập nội dung của riêng mình.
- Mỗi trang web có thể có một hoặc nhiều tên miền được liên kết .
Bằng cách thiết lập nhiều Trang web lưu trữ 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 quản trị và ứng dụng công khai của mình dưới dạng các trang web riêng lẻ trong cùng một dự án Firebase, thì tất cả chúng có thể chia sẻ cùng một cơ sở dữ liệu người dùng Xác thực Firebase, đồng thời có miền hoặc nội dung riêng.
Bước 1 : Cập nhật phiên bản Firebase CLI của bạn
Truy cập các tính năng Lưu trữ Firebase mới nhất bằng cách cập nhật lên phiên bản Firebase CLI mới nhất .
Bước 2 : Thêm các trang web bổ sung
Thêm các trang web bổ sung vào dự án Firebase bằng một trong các phương pháp sau:
Sử dụng quy trình làm việc trong trang Lưu trữ của bảng điều khiển Firebase
Sử dụng lệnh Firebase CLI:
firebase hosting:sites:create SITE_ID
Sử dụng API REST của Hosting:
projects.sites.create
Đối với mỗi phương pháp này, bạn sẽ chỉ định một SITE_ID
được sử dụng để tạo miền con mặc định do Firebase cung cấ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 ID trang web có các yêu cầu sau:
- Phải là nhãn tên máy chủ hợp lệ, nghĩa là nhãn không được chứa tệp
.
,_
, 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ể tùy ý thêm các miền tùy chỉnh để phân phát cùng một nội dung và cấu hình cho nhiều URL.
Xóa một trang web phụ
Xóa các trang web không mong muốn khỏi dự án Firebase bằng một trong các phương pháp sau:
Sử dụng quy trình làm việc trong trang Lưu trữ của bảng điều khiển Firebase
Sử dụng lệnh Firebase CLI:
firebase hosting:sites:delete SITE_ID
Sử dụng API REST của dịch vụ lưu trữ:
projects.sites.delete
Lưu ý rằng bạn không thể xóa trang web mặc định có cùng SITE_ID
với ID dự án Firebase của bạn.
Bước 3 : Thiết lập các mục tiêu triển khai cho trang web của bạn
Khi bạn có nhiều trang web và bạn chạy các lệnh triển khai Firebase CLI, CLI cần một cách để liên lạc cài đặt nào sẽ được triển khai cho từng trang web. Với các 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 CLI để thử nghiệm hoặc triển khai cho các trang web của mình.
Để tạo mục tiêu triển khai và áp dụng TARGET_NAME
cho Trang web lưu trữ, hãy chạy lệnh CLI sau từ thư mục gốc của thư mục dự án của bạ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 lưu trữ mà bạn đang triển khai
RESOURCE_IDENTIFIER —
SITE_ID
cho Trang web lưu trữ như được liệt kê trong dự án Firebase của bạn
Ví dụ: nếu bạn đã tạo hai trang web ( myapp-blog
và myapp-app
) trong dự án Firebase của mình, thì bạn có thể áp dụng một TARGET_NAME
( blog
và app
tương ứng) duy nhất 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
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, do đó 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 hosting cho từng site
Sử dụng TARGET_NAME
được áp dụng của trang web khi bạn đang xác định cấu hình lưu trữ của trang web đó trong tệp firebase.json
của mình.
Nếu tệp
firebase.json
của bạn xá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.json
của bạn chỉ xác định cấu hình cho một trang web, thì 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 tra cục bộ, xem trước các thay đổi và triển khai cho các trang web của bạn
Chạy bất kỳ lệnh nào sau đây từ thư mục gốc của thư mục dự án cục bộ của bạn.
Yêu cầu | Sự miêu tả |
---|---|
firebase emulators:start --only hosting | Mô phỏng nội dung Lưu trữ và cấu hình của trang Lưu trữ mặc định tại một URL được lưu trữ cục bộ |
firebase emulators:start --only hosting: TARGET_NAME | Mô phỏng nội dung Lưu trữ và cấu hình của trang web Lưu trữ đượ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 Lưu trữ và cấu hình của trang Lưu trữ mặc định tại một URL xem trước |
firebase hosting:channel:deploy \ | Triển khai nội dung Lưu trữ và cấu hình của trang web Lưu trữ được chỉ định tại một URL xem trước |
firebase deploy --only hosting | Triển khai cấu hình và nội dung Lưu trữ cho kênh trực tiếp của tất cả các trang web Lưu trữ được định cấu hình trong firebase.json |
firebase deploy --only hosting: TARGET_NAME | Triển khai cấu hình và nội dung Lưu trữ cho kênh trực tiếp của trang web Lưu trữ được chỉ định |
Yêu cầu | Sự miêu tả |
---|---|
(không được đề xuất; thay vào đó hãy sử dụng emulators:start )firebase serve --only hosting | Phục vụ nội dung Lưu trữ và cấu hình của trang web Lưu trữ mặc định tại một URL được lưu trữ cục bộ |
(không được đề xuất; thay vào đó hãy sử dụng emulators:start )firebase serve --only hosting: TARGET_NAME | Phục vụ nội dung Lưu trữ và cấu hình của trang web Lưu trữ được chỉ định tại một URL được lưu trữ cục bộ |