Triển khai mục tiêu

Triển khai mục tiêu là các giá trị nhận dạng tên ngắn (do bạn tự xác định) cho các tài nguyên Firebase trong dự án Firebase của bạn, chẳng hạn như một trang web Lưu trữ có các thành phần tĩnh riêng biệt hoặc một nhóm các thực thể của Cơ sở dữ liệu theo thời gian thực có cùng quy tắc bảo mật.

Các mục tiêu triển khai rất hữu ích khi bạn có nhiều trang web Lưu trữ, nhiều bộ chứa Cloud Storage hoặc nhiều thực thể Cơ sở dữ liệu theo thời gian thực. Với các mục tiêu triển khai, Giao diện dòng lệnh (CLI) của Firebase có thể triển khai các chế độ cài đặt cho một nhóm tài nguyên hoặc tài nguyên Firebase cụ thể trong dự án của bạn, chẳng hạn như:

  • Cấu hình lưu trữ cho mỗi trang web Lưu trữ của bạn
  • Tài sản tĩnh trong thư mục dự án của mỗi Trang web lưu trữ
  • Quy tắc bảo mật được nhiều thực thể Cơ sở dữ liệu theo thời gian thực hoặc nhiều bộ chứa trên Cloud Storage dùng chung

Cách thiết lập mục tiêu triển khai:

  1. Áp dụng TARGET_NAME cho tài nguyên Firebase hoặc nhóm tài nguyên Firebase được nhắm đến.
  2. Trong tệp firebase.json, hãy tham chiếu đến TARGET_NAME được liên kết khi bạn định cấu hình các chế độ cài đặt cho từng tài nguyên hoặc nhóm tài nguyên.

Khi bạn chạy lệnh CLI của Firebase (chẳng hạn như firebase deploy), Firebase CLI sẽ ghép từng TARGET_NAME với các tài nguyên Firebase được liên kết. Sau đó, CLI sẽ giao tiếp với dự án Firebase của bạn về chế độ cài đặt cho mỗi tài nguyên.

Thiết lập mục tiêu triển khai cho các tài nguyên Firebase của bạn

Sử dụng Giao diện dòng lệnh (CLI) của Firebase, áp dụng TARGET_NAME (giá trị nhận dạng tên ngắn mà bạn tự xác định) cho một tài nguyên Firebase hoặc nhóm tài nguyên Firebase. Firebase hỗ trợ triển khai các mục tiêu cho:

Chế độ 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, 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.

Thiết lập mục tiêu triển khai cho dịch vụ Lưu trữ

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

firebase target:apply TYPE TARGET_NAME RESOURCE_IDENTIFIER

Trong đó các thông số:

  • TYPE – loại tài nguyên Firebase có liên quan

    • Đối với các trang web Lưu trữ Firebase, hãy sử dụng hosting.
  • TARGET_NAME – tên riêng biệt cho trang web Lưu trữ mà bạn đang triển khai

  • RESOURCE_IDENTIFIERSITE_ID cho trang web Lưu trữ như được liệt kê trong dự án Firebase của bạn

Ví dụ: nếu đã tạo hai trang web (myapp-blogmyapp-app) trong dự án Firebase, bạn có thể áp dụng một TARGET_NAME duy nhất (blogapp 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

Thiết lập mục tiêu triển khai cho Cloud Storage hoặc Cơ sở dữ liệu theo thời gian thực

Để tạo mục tiêu triển khai và áp dụng TARGET_NAME cho nhóm tài nguyên Bộ nhớ trên đám mây hoặc Cơ sở dữ liệu theo thời gian thực, hãy chạy lệnh CLI sau:

firebase target:apply TYPE TARGET_NAME RESOURCE-1_IDENTIFIER RESOURCE-2_IDENTIFIER ...

Trong đó các thông số:

  • TYPE – loại tài nguyên Firebase có liên quan

    • Đối với bộ chứa trong Cloud Storage, hãy dùng storage.
    • Đối với các phiên bản Cơ sở dữ liệu theo thời gian thực, hãy sử dụng database.
  • TARGET_NAME – tên riêng biệt cho tài nguyên hoặc nhóm tài nguyên dùng chung quy tắc bảo mật

  • RESOURCE_IDENTIFIER – giá trị nhận dạng cho các tài nguyên như được liệt kê trong dự án Firebase của bạn (như tên bộ chứa lưu trữ hoặc mã phiên bản cơ sở dữ liệu) đều có cùng quy tắc bảo mật

Ví dụ: bạn có thể áp dụng TARGET_NAME của main cho một nhóm ba bộ chứa Cloud Storage theo khu vực (tất cả đều có cùng quy tắc bảo mật) bằng cách chạy lệnh sau:

firebase target:apply storage main myproject.appspot.com myproject-eu myproject-ja

Xin lưu ý rằng myproject.appspot.com là giá trị nhận dạng cho bộ chứa mặc định, trong khi myproject-eumyproject-ja là 2 bộ chứa bổ sung được tạo trong dự án Firebase.

Định cấu hình tệp firebase.json để sử dụng các mục tiêu triển khai

Sau khi bạn thiết lập mục tiêu triển khai cho các tài nguyên Firebase, hãy tham chiếu từng TARGET_NAME được áp dụng trong tệp cấu hình firebase.json:

  1. Tạo một mảng đối tượng cấu hình cho mỗi tài nguyên Firebase TYPE (hosting, storage hoặc database).
  2. Trong các mảng, hãy chỉ định target (sử dụng TARGET_NAME) và xác định chế độ cài đặt cho nhóm tài nguyên hoặc tài nguyên Firebase được liên kết.

Tiếp tục các ví dụ ở trên, trong đó dự án Firebase của bạn có 2 Trang web lưu trữ và 3 bộ chứa Cloud Storage (có cùng quy tắc bảo mật), tệp firebase.json sẽ có dạng như sau:

{
  "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
    }
  ]
}

{
  "storage": [ {
      "target": "main",  // "main" is the applied TARGET_NAME for the group of Cloud Storage buckets
      "rules": "storage.main.rules"  // the file that contains the shared security rules
    }
  ]
}

Nếu có nhiều cấu hình cho tài nguyên, bạn có thể tạo nhiều mục tiêu triển khai và chỉ định từng mục tiêu trong tệp firebase.json. Mọi tài nguyên liên quan sẽ được triển khai cùng nhau khi bạn chạy firebase deploy.

Quản lý mục tiêu triển khai

Chế độ 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. Bạn có thể quản lý các mục tiêu triển khai của dự án bằng cách chạy bất cứ lệnh nào sau đây từ gốc của thư mục dự án.

Lệnh Mô tả
firebase target Liệt kê các mục tiêu triển khai cho thư mục dự án hiện tại của bạn
firebase target:remove \
TYPE RESOURCE_IDENTIFIER
Xoá tài nguyên khỏi mục tiêu mà tài nguyên đó đã được gán vào
firebase target:clear \
TYPE TARGET_NAME
Xoá tất cả tài nguyên hoặc trang web Lưu trữ khỏi mục tiêu đã chỉ định

Các lệnh target:removetarget:clear tự động cập nhật chế độ cài đặt triển khai mục tiêu trong tệp .firebaserc trong thư mục dự án của bạn.

Kiểm thử cục bộ trước khi triển khai

Chạy bất kỳ lệnh nào sau đây từ gốc của thư mục dự án.

Lệnh Mô tả
firebase emulators:start Mô phỏng tất cả tài nguyên đã định cấu hình trong thư mục dự án
firebase emulators:start \
--only hosting:TARGET_NAME
Chỉ mô phỏng nội dung Lưu trữ và cấu hình của trang web Lưu trữ được chỉ định
firebase emulators:start \
--only storage:TARGET_NAME
Chỉ mô phỏng tệp quy tắc cho mục tiêu Cloud Storage được chỉ định
firebase emulators:start \
--only database:TARGET_NAME
Chỉ mô phỏng tệp quy tắc cho mục tiêu Cơ sở dữ liệu theo thời gian thực được chỉ định

Tìm hiểu thêm về cách định cấu hình và sử dụng Bộ mô phỏng cục bộ của Firebase.

Triển khai các tài nguyên Firebase cụ thể

Chạy bất kỳ lệnh nào sau đây từ gốc của thư mục dự án.

Lệnh Mô tả
firebase deploy Tạo bản phát hành tất cả tài nguyên có thể triển khai trong thư mục dự án
firebase deploy \
--only hosting:TARGET_NAME
Chỉ triển khai nội dung Lưu trữ và cấu hình của trang web Lưu trữ đã chỉ định cho kênh trực tiếp của trang web
firebase hosting:channel:deploy CHANNEL_ID \
--only TARGET_NAME
Chỉ triển khai nội dung và cấu hình Lưu trữ của trang web Lưu trữ đã chỉ định cho một kênh xem trước cho trang web đó
firebase deploy \
--only storage:TARGET_NAME
Chỉ triển khai tệp quy tắc cho mục tiêu Cloud Storage được chỉ định
firebase deploy \
--only database:TARGET_NAME
Chỉ triển khai tệp quy tắc cho mục tiêu Cơ sở dữ liệu theo thời gian thực được chỉ định