Tệp kê khai tiện ích là danh sách các thực thể tiện ích và cấu hình của chúng. Với tệp kê khai, bạn có thể:
- Chia sẻ cấu hình tiện ích của bạn với người khác
- Sao chép cấu hình tiện ích của bạn giữa các dự án (chẳng hạn như từ dự án dàn dựng sang dự án phát hành công khai)
- Triển khai tất cả tiện ích cùng một lúc
- Kiểm thử cách các tiện ích hoạt động với ứng dụng của bạn bằng cách sử dụng Firebase Local Emulator Suite
- Cam kết cấu hình tiện ích của bạn để kiểm soát nguồn
- Đưa các tiện ích vào quy trình CI/CD
Tệp kê khai tiện ích có hai phần:
Phần
extensions
củafirebase.json
, là bản đồ của mã nhận dạng phiên bản đến thông tin tham chiếu phiên bản tiện ích. Ví dụ:{ "extensions": { "my-bigquery-extension": "firebase/firestore-bigquery-export@^0.1.18", "my-image-resizer": "firebase/storage-resize-images@^0.1.22", } }
Tệp
.env
chứa cấu hình cho từng phiên bản tiện ích của bạn, trong thư mục conextensions/
của thư mục dự án Firebase. Ví dụ: một thực thể củastorage-resize-images
có thể có một tệp.env
như sau:IMAGE_TYPE=jpeg LOCATION=us-central1 IMG_BUCKET=${param:PROJECT_ID}.firebasestorage.app IMG_SIZES=100x100 DELETE_ORIGINAL_FILE=false
Tạo tệp kê khai tiện ích
Có 3 cách để tạo tệp kê khai tiện ích:
- Quản lý tệp kê khai tiện ích bằng Giao diện dòng lệnh (CLI) của Firebase
- Xuất cấu hình tiện ích của dự án
- Chỉnh sửa tệp kê khai theo cách thủ công
Hai phương thức đầu tiên được giải thích bên dưới.
Quản lý tệp kê khai tiện ích bằng Giao diện dòng lệnh (CLI) của Firebase
Bạn có thể chạy hầu hết các lệnh ext:
của Firebase CLI bằng lựa chọn --local
để cập nhật tệp kê khai tiện ích mà không thực sự thay đổi cấu hình hiện tại của dự án.
Ví dụ:
firebase ext:install --local firebase/firestore-bigquery-export
Khi chạy lệnh trên, bạn sẽ được nhắc định cấu hình phiên bản mới nhất của tiện ích firebase/firestore-bigquery-export
và lưu cấu hình vào tệp kê khai, nhưng lệnh này sẽ không triển khai cấu hình cho dự án của bạn.
Sau đây là một số ví dụ khác về các lệnh sửa đổi tệp kê khai tiện ích:
# ext:configure changes the params for an extension instance in your extensions manifest
$ firebase ext:configure my-bigquery-extension --local
# ext:update --local updates an instance in your extensions manifest
# to the latest version of that extension
$ firebase ext:update my-bigquery-extension --local
# You can also specify a version if you don't want to update to the latest version
$ firebase ext:update my-bigquery-extension firebase/firestore-bigquery-export@0.1.10 --local
# ext:uninstall --local removes an instance from your extensions manifest
$ firebase ext:uninstall my-bigquery-extension --local
Xuất cấu hình tiện ích của dự án
Để lưu cấu hình hiện tại của các tiện ích trong dự án vào tệp kê khai, hãy làm như sau:
- Nếu chưa làm, hãy thiết lập Giao diện dòng lệnh (CLI) của Firebase
- Từ dấu nhắc của trình bao, hãy chuyển sang thư mục dự án. (Thư mục dự án của bạn chứa tệp
firebase.json
). - Chạy lệnh
ext:export
:firebase ext:export
Lệnh ext:export
sẽ thêm một phần extensions
vào tệp firebase.json
. Ngoài ra, lệnh ext:export
sẽ tạo một thư mục extensions
chứa tệp .env
cho mỗi phiên bản tiện ích mà bạn đã cài đặt. Các tệp này chứa các tham số cấu hình cho từng phiên bản.
Kiểm thử cấu hình tiện ích bằng Firebase Local Emulator Suite
Sau khi thêm một số thực thể tiện ích vào tệp kê khai tiện ích, bạn có thể kiểm thử chúng bằng Local Emulator Suite.
-
- Để chạy Emulator Suite theo cách tương tác, hãy chạy:
firebase emulators:start
- Để chạy Emulator Suite và thực thi một tập lệnh kiểm thử, hãy chạy:
firebase emulators:exec my-test.sh
- Để chạy Emulator Suite theo cách tương tác, hãy chạy:
Giờ đây, nếu bạn có các thực thể tiện ích được liệt kê trong tệp kê khai, thì Local Emulator Suite sẽ tải mã nguồn của các tiện ích đó xuống ~/.cache/firebase/extensions
. Sau khi tải xuống, Local Emulator Suite sẽ bắt đầu và bạn có thể kích hoạt bất kỳ hàm nào được kích hoạt ở chế độ nền của các tiện ích cũng như kết nối ứng dụng với bộ Emulator để kiểm thử quá trình tích hợp với ứng dụng của bạn.
Triển khai cấu hình tiện ích cho một dự án
Sau khi thêm một số thực thể tiện ích vào tệp kê khai tiện ích, bạn có thể triển khai tệp kê khai đó vào một dự án bằng Firebase CLI. Khi triển khai bằng tệp kê khai tiện ích, bạn sẽ cài đặt, cập nhật và định cấu hình tất cả các phiên bản tiện ích trong tệp kê khai vào một dự án cùng một lúc.
Cách triển khai tệp kê khai tiện ích:
- Từ dấu nhắc của trình bao, hãy chuyển đến thư mục chứa cấu hình tiện ích đã lưu. (Đây là thư mục chứa
firebase.json
. Nếu vừa chạyext:export
, tức là bạn đã ở đúng thư mục.) - Chạy lệnh
deploy
. Nếu bạn muốn triển khai các tiện ích cho một dự án khác với dự án hiện tại, hãy chỉ định--project=
:firebase deploy --only extensions –-project=YOUR_PROJECT_ID
Lệnh deploy
sẽ xác thực từng cấu hình phiên bản, hỏi xem bạn có muốn xoá mọi phiên bản tiện ích khỏi dự án đích không được liệt kê trong firebase.json
hay không, rồi triển khai tất cả các phiên bản tiện ích của bạn.
Cấu hình tiện ích dành riêng cho dự án
Bạn có thể dùng các cấu hình tiện ích đã lưu để triển khai cho nhiều dự án khác nhau, ví dụ: dự án dàn dựng và dự án phát hành công khai. Khi thực hiện việc này, một số giá trị tham số có thể cần phải khác nhau đối với mỗi dự án.
Các tệp .env
dành riêng cho dự án giúp bạn thực hiện việc này:
- Đặt các giá trị tham số khác nhau giữa các dự án trong
extensions/EXTENSION_INSTANCE_ID.env.YOUR_PROJECT_ID
- Đặt các giá trị tham số được chia sẻ trong
extensions/EXTENSION_INSTANCE_ID.env
.
Đôi khi, bạn có thể muốn sử dụng một giá trị tham số khác khi mô phỏng các tiện ích của mình: ví dụ: bạn có thể muốn cung cấp khoá API kiểm thử thay vì khoá API phát hành chính thức. Đặt các tham số này vào tệp .local
:
- Đặt các tham số không phải là tham số bí mật mà bạn muốn sử dụng trong quá trình mô phỏng vào
extensions/EXTENSION_INSTANCE_ID.env.local
- Đặt các giá trị tham số bí mật trong
extensions/EXTENSION_INSTANCE_ID.secret.local