获取我们在 Firebase 峰会上发布的所有信息,了解 Firebase 可如何帮助您加快应用开发速度并满怀信心地运行应用。了解详情

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 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. 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 riêng của chú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 mới nhất của Firebase CLI .

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 lưu trữ: projects.sites.create

Đối với mỗi phương pháp này, bạn sẽ chỉ định SITE_ID được sử dụng để tạo miền phụ mặc định do Firebase cấp cho trang web:

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

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à nó 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ể tùy chọn 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 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 Máy chủ lưu trữ: projects.sites.delete

Lưu ý rằng bạn không thể xóa trang web mặc định có SITE_ID giống như 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 các trang web của bạn

Khi bạn có nhiều trang web và bạn chạy lệnh triển khai Firebase CLI, 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 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 bạn.

Để 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

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

  • 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 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-blogmyapp-app ) trong dự án Firebase của mình, bạn có thể áp dụng một TARGET_NAME ( blogapp tương ứng) duy nhất 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ài đặt cho các 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 được áp dụng của trang web khi bạn đang xác định cấu hình lưu trữ của nó 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ự mô 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 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 nội dung Lưu trữ và cấu hình của trang Lưu trữ mặc định tại 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 nội dung và cấu hình Lưu trữ vào kênh trực tiếp của tất cả các trang Lưu trữ đượ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 Lưu trữ vào kênh trực tiếp của trang Lưu trữ được chỉ định
Yêu cầu Sự mô tả
(không được khuyến nghị; sử dụng emulators:start thay thế)
firebase serve --only hosting
Cung cấp 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ộ
(không được khuyến nghị; sử dụng emulators:start thay thế)
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ộ