Catch up on everthing we announced at this year's Firebase Summit. Learn more

Chia sẻ tài nguyên dự án trên nhiều trang web

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 duy nhất. 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.

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 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 của mình dưới dạng các trang web riêng lẻ trong cùng một dự án Firebase, tất cả chúng đều 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ó các miền hoặc nội dung duy nhất của riêng chúng.

Bước 1: Cập nhật phiên bản căn cứ hỏa lực CLI của bạn

Truy cập căn cứ hỏa lực hiện tại hầu hết các tính năng Hosting by cập nhật lên phiên bản mới nhất của các firebase CLI .

Bước 2: Thêm 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 các quy trình làm việc trong trang Hosting của các firebase console

  • Sử dụng lệnh căn cứ hỏa lực CLI: firebase hosting:sites:create SITE_ID

  • Sử dụng Hosting REST API: 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 để xây dựng các tên miền phụ mặc định căn cứ hỏa lực-được cung cấp cho các trang web:

  • SITE_ID .web.app
  • SITE_ID .firebaseapp.com

Bởi vì SITE_ID được sử dụng cho các URL, ID trang web có các yêu cầu sau:

  • Phải là một nhãn hostname hợp lệ, có nghĩa là nó không thể chứa . , _ , Vv
  • Phải có 30 ký tự trở xuống
  • Phải là duy nhất trên toàn cầu trong Firebase

Để mỗi trang web, bạn cũng có thể tùy chọn thêm miền tùy chỉnh để phục vụ cùng một nội dung và cấu hình để nhiều URL.

Xóa một trang 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 các quy trình làm việc trong trang Hosting của các firebase console

  • Sử dụng lệnh căn cứ hỏa lực CLI: firebase hosting:sites:delete SITE_ID

  • Sử dụng Hosting REST API: projects.sites.delete

Lưu ý rằng bạn không thể xóa các trang web mặc định, trong đó có giống nhau SITE_ID như ID dự án căn cứ hỏa lực của bạn.

Bước 3: Thiết lập 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 lệnh triển khai CLI của Firebase, CLI cần một cách để thông báo cài đặt nào nên được triển khai cho từng trang web. Với mục tiêu triển khai bạn duy nhất có thể xác định một trang web cụ thể với một TARGET_NAME trong bạn firebase.json tập tin cấu hình và bạn lệnh căn cứ hỏa lực CLI để thử nghiệm hoặc triển khai đến các trang web của bạn.

Để tạo một mục tiêu triển khai và áp dụng một TARGET_NAME đến một trang web Hosting, hãy chạy lệnh CLI sau đây 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

Các thông số ở đâu:

  • TARGET_NAME - một tên duy nhất (mà bạn đã xác định cho mình) cho các trang web Hosting mà bạn đang triển khai để

  • RESOURCE_IDENTIFIER - các SITE_ID cho các trang web Hosting được liệt kê trong dự án căn cứ hỏa lực của bạn

Ví dụ, nếu bạn đã tạo ra hai trang web ( myapp-blogmyapp-app ) trong dự án căn cứ hỏa lực của bạn, bạn có thể áp dụng một độc đáo TARGET_NAME ( blogapp , tương ứng) cho mỗi trang web bằng cách chạy lệnh sau:

firebase target:apply hosting blog myapp-blog
firebase target:apply hosting app myapp-app

Các thiết lập cho các mục tiêu triển khai được lưu trữ trong các .firebaserc tập tin 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 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 ứng dụng của trang web TARGET_NAME khi bạn xác định cấu hình lưu trữ của nó trong bạn firebase.json tập tin.

  • Nếu bạn firebase.json tập tin định nghĩa các cấu hình cho nhiều trang web, sử dụng một đị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 bạn firebase.json tập tin định nghĩa các cấu hình cho chỉ có một trang web, nó không phải là cần thiết để sử dụng một định dạng mảng:

    {
      "hosting": {
          "target": "blog",
          "public": "dist",
    
          // ...
    
          "rewrites": [...]
      }
    }
    

Bước 5: Kiểm tra tại địa phương, xem trước thay đổi, và triển khai đến 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.

Chỉ huy Sự miêu tả
firebase emulators:start --only hosting Mô phỏng nội dung Hosting và cấu hình của trang web mặc định Hosting tại một URL tại địa phương tổ chức
firebase emulators:start --only hosting: TARGET_NAME Mô phỏng nội dung Lưu trữ và cấu hình của trang Lưu trữ được chỉ định tại một URL được lưu trữ cục bộ
firebase hosting:channel:deploy \
CHANNEL_ID
Triển khai các nội dung Hosting và cấu hình của trang web mặc định Hosting tại một URL xem trước
firebase hosting:channel:deploy \
CHANNEL_ID --only TARGET_NAME
Triển khai nội dung Lưu trữ và cấu hình của trang Lưu trữ được chỉ định tại URL xem trước
firebase deploy --only hosting Triển khai các nội dung Hosting và cấu hình với kênh trực tiếp của tất cả các trang web Hosting cấu hình trong firebase.json
firebase deploy --only hosting: TARGET_NAME Triển khai nội dung và cấu hình Lưu trữ vào kênh trực tiếp của trang Lưu trữ được chỉ định
Chỉ huy Sự miêu tả
(không khuyến khích; sử dụng emulators:start thay)
firebase serve --only hosting
Phục vụ nội dung Hosting và cấu hình của trang web mặc định Hosting tại một URL tại địa phương tổ chức
(không khuyến khích; sử dụng emulators:start thay)
firebase serve --only hosting: TARGET_NAME
Cung cấp nội dung Lưu trữ và cấu hình của trang Lưu trữ được chỉ định tại một URL được lưu trữ cục bộ