Mục tiêu triển khai là 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, chẳng hạn như trang web Hosting có các thành phần tĩnh riêng biệt hoặc một nhóm các thực thể Realtime Database có cùng quy tắc bảo mật.
Mục tiêu triển khai sẽ hữu ích khi bạn có nhiều trang web Hosting, nhiều bộ chứa Cloud Storage hoặc nhiều thực thể Realtime Database. Với các mục tiêu triển khai, CLI Firebase có thể triển khai các chế độ cài đặt cho một tài nguyên hoặc nhóm 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 từng trang web Hosting
- Các thành phần tĩnh từ thư mục dự án cho từng trang web Hosting của bạn
- Quy tắc bảo mật do nhiều thực thể Realtime Database hoặc nhiều bộ chứa Cloud Storage chia sẻ
Cách thiết lập mục tiêu triển khai:
- Áp dụng
TARGET_NAME
cho tài nguyên Firebase hoặc nhóm tài nguyên Firebase được nhắm đến. - Trong tệp
firebase.json
, hãy tham chiếu đếnTARGET_NAME
được liên kết khi bạn định cấu hình chế độ cài đặt cho từng tài nguyên hoặc nhóm tài nguyên.
Khi bạn chạy các lệnh CLI Firebase (chẳng hạn như
firebase deploy
), CLI Firebase sẽ ghép nối từng TARGET_NAME
với
các tài nguyên Firebase được liên kết. Sau đó, CLI sẽ thông báo cho dự án Firebase về chế độ cài đặt cho từng tài nguyên.
Thiết lập mục tiêu triển khai cho tài nguyên Firebase
Sử dụng CLI Firebase, hãy áp dụng TARGET_NAME
(mã nhận dạng tên ngắn do 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ợ các mục tiêu triển khai cho:
- Trang web Firebase Hosting
- Bộ chứa bộ nhớ Cloud Storage for Firebase
- Các thực thể Firebase Realtime Database
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, 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 Hosting
Để tạo mục tiêu triển khai và áp dụng TARGET_NAME
cho trang web Hosting, hãy chạy lệnh CLI sau:
firebase target:apply TYPE TARGET_NAME RESOURCE_IDENTIFIER
Trong đó các tham số là:
TYPE – loại tài nguyên Firebase có liên quan
- Đối với các trang web Firebase Hosting, hãy sử dụng
hosting
.
- Đối với các trang web Firebase Hosting, hãy sử dụng
TARGET_NAME – tên duy nhất cho trang web Hosting mà bạn đang triển khai
RESOURCE_IDENTIFIER –
SITE_ID
cho trang web Hosting như đã liệt kê trong dự án Firebase của bạn
Ví dụ: nếu đã tạo hai trang web (myapp-blog
và myapp-app
) trong dự án Firebase, bạn có thể áp dụng một TARGET_NAME
duy nhất (tương ứng là blog
và app
) 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 Realtime Database
Để tạo mục tiêu triển khai và áp dụng TARGET_NAME
cho một nhóm tài nguyên Cloud Storage hoặc Realtime Database, hãy chạy lệnh CLI sau:
firebase target:apply TYPE TARGET_NAME RESOURCE-1_IDENTIFIER RESOURCE-2_IDENTIFIER ...
Trong đó các tham số là:
TYPE – loại tài nguyên Firebase có liên quan
- Đối với các nhóm Cloud Storage, hãy sử dụng
storage
. - Đối với các thực thể Realtime Database, hãy sử dụng
database
.
- Đối với các nhóm Cloud Storage, hãy sử dụng
TARGET_NAME – tên duy nhất cho tài nguyên hoặc nhóm tài nguyên có chung quy tắc bảo mật
RESOURCE_IDENTIFIER – giá trị nhận dạng cho các tài nguyên được liệt kê trong dự án Firebase của bạn (chẳng hạn như tên bộ nhớ hoặc mã phiên bản cơ sở dữ liệu) đều có chung các 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 gồm 3 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.firebasestorage.app myproject-eu myproject-ja
Xin lưu ý rằng myproject.firebasestorage.app
là giá trị nhận dạng cho bộ chứa mặc định, còn myproject-eu
và myproject-ja
là hai 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 các mục tiêu triển khai cho tài nguyên Firebase, hãy tham chiếu từng TARGET_NAME
đã áp dụng trong tệp cấu hình firebase.json
:
- Tạo một mảng các đối tượng cấu hình cho mỗi tài nguyên Firebase
TYPE
(hosting
,storage
hoặcdatabase
). - Trong các mảng, hãy chỉ định
target
(sử dụngTARGET_NAME
) và xác định chế độ cài đặt cho tài nguyên hoặc nhóm 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ó hai trang web Hosting và ba bộ chứa Cloud Storage (chia sẻ cùng một quy tắc bảo mật), tệp firebase.json
của bạn 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
. Tất cả tài nguyên liên kết 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
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. 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 kỳ lệnh nào sau đây từ thư mục gốc của 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 \
|
Xoá một tài nguyên khỏi mục tiêu đã được chỉ định |
firebase target:clear \
|
Xoá tất cả tài nguyên hoặc trang web Hosting khỏi mục tiêu đã chỉ định |
Các lệnh target:remove
và target:clear
sẽ tự động cập nhật chế độ cài đặt mục tiêu triển khai trong tệp .firebaserc
trong thư mục dự á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ừ thư mục gốc của 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 \ |
Chỉ mô phỏng nội dung và cấu hình Hosting của trang web Hosting đã chỉ định |
firebase emulators:start \
|
Chỉ mô phỏng tệp quy tắc cho mục tiêu Cloud Storage được chỉ định |
firebase emulators:start \
|
Chỉ mô phỏng tệp quy tắc cho mục tiêu Realtime Database đã chỉ định |
Tìm hiểu thêm về cách định cấu hình và sử dụng Firebase Local Emulator Suite.
Triển khai các tài nguyên Firebase cụ thể
Chạy bất kỳ lệnh nào sau đây từ thư mục gốc của 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 \
|
Chỉ triển khai nội dung và cấu hình Hosting của trang web Hosting đã chỉ định cho kênh phát trực tiếp của trang web |
firebase hosting:channel:deploy CHANNEL_ID \ |
Chỉ triển khai nội dung và cấu hình Hosting của trang web Hosting đã chỉ định đến một kênh xem trước cho trang web đó |
firebase deploy \
|
Chỉ triển khai tệp quy tắc cho mục tiêu Cloud Storage được chỉ định |
firebase deploy \
|
Chỉ triển khai tệp quy tắc cho mục tiêu Realtime Database đã chỉ định |