Quản lý cấu hình dự án bằng bảng kê khai Tiện ích mở rộng

Tệp kê khai tiện ích mở rộng là danh sách các phiên bản tiện ích mở rộng và cấu hình của chúng. Với bảng kê khai, bạn có thể:

  • Chia sẻ cấu hình tiện ích mở rộng của bạn với người khác
  • Sao chép cấu hình tiện ích mở rộng của bạn giữa các dự án khác nhau (chẳng hạn như từ dự án dàn dựng sang dự án sản xuất của bạn)
  • Triển khai tất cả tiện ích mở rộng của bạn cùng một lúc
  • Kiểm tra cách tiện ích mở rộng hoạt động với ứng dụng của bạn bằng Bộ mô phỏng cục bộ Firebase
  • Cam kết cấu hình tiện ích mở rộng của bạn với kiểm soát nguồn
  • Bao gồm các tiện ích mở rộng trong quy trình CI/CD của bạn

Tệp kê khai tiện ích mở rộng có hai phần:

  • Phần extensions của firebase.json , là bản đồ ID phiên bản tới tham chiếu phiên bản tiện ích mở rộng. Ví dụ:

    {
     "extensions": {
       "my-bigquery-extension": "firebase/firestore-bigquery-export@^0.1.18",
       "my-image-resizer": "firebase/storage-resize-images@^0.1.22",
     }
    }
    
  • Các tệp .env chứa cấu hình cho từng phiên bản tiện ích mở rộng của bạn, trong thư mục extensions/ của thư mục dự án Firebase của bạn. Ví dụ: một phiên bản của storage-resize-images có thể có tệp .env như sau:

    IMAGE_TYPE=jpeg
    LOCATION=us-central1
    IMG_BUCKET=${param:PROJECT_ID}.appspot.com
    IMG_SIZES=100x100
    DELETE_ORIGINAL_FILE=false

Tạo bảng kê khai tiện ích mở rộng

Có ba cách để tạo bảng kê khai tiện ích mở rộng:

  • Quản lý bảng kê khai tiện ích mở rộng của bạn bằng Firebase CLI
  • Xuất cấu hình tiện ích mở rộng của dự án
  • Chỉnh sửa tệp kê khai theo cách thủ công

Hai phương pháp đầu tiên được giải thích dưới đây.

Quản lý bảng kê khai tiện ích mở rộng của bạn bằng Firebase CLI

Bạn có thể chạy hầu hết các lệnh ext: của Firebase CLI với tùy chọn --local để cập nhật tệp kê khai tiện ích mở rộng 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

Việc chạy lệnh trên sẽ nhắc bạn định cấu hình phiên bản mới nhất của tiện ích mở rộng firebase/firestore-bigquery-export và lưu cấu hình vào tệp kê khai, nhưng nó sẽ không triển khai cấu hình cho dự án của bạn.

Dưới đây là một số ví dụ khác về các lệnh sửa đổi bảng kê khai tiện ích mở rộng:

# 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 mở rộng của dự án

Để lưu cấu hình tiện ích mở rộng hiện tại của dự án vào tệp kê khai, hãy làm như sau:

  1. Nếu bạn chưa làm như vậy, hãy thiết lập Firebase CLI
  2. Từ dấu nhắc shell, thay đổi thư mục dự án. (Thư mục dự án của bạn chứa tệp firebase.json ).
  3. Chạy lệnh ext:export :
    firebase ext:export

Lệnh ext:export sẽ thêm phần extensions vào tệp firebase.json . Ngoài ra, lệnh ext:export sẽ tạo thư mục extensions chứa tệp .env cho mỗi phiên bản tiện ích mở rộng 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 tra cấu hình tiện ích mở rộng với Bộ mô phỏng cục bộ Firebase

Sau khi đã thêm một số phiên bản tiện ích mở rộng vào bảng kê khai tiện ích mở rộng của mình, bạn có thể kiểm tra chúng bằng Bộ mô phỏng cục bộ.

  1. Cài đặt và định cấu hình Local Emulator Suite .

  2. Khởi động Bộ mô phỏng cục bộ :

    • Để chạy Bộ mô phỏng một cách tương tác, hãy chạy: firebase emulators:start
    • Để chạy Bộ mô phỏng và thực thi tập lệnh kiểm tra, hãy chạy: firebase emulators:exec my-test.sh

Bây giờ, nếu bạn có các phiên bản tiện ích mở rộng được liệt kê trong tệp kê khai của mình, Bộ mô phỏng cục bộ sẽ tải mã nguồn của các tiện ích mở rộng đó xuống ~/.cache/firebase/extensions . Sau khi chúng được tải xuống, Local Emulator Suite sẽ khởi động và bạn sẽ có thể kích hoạt bất kỳ chức năng kích hoạt nền nào của tiện ích mở rộng cũng như kết nối ứng dụng của bạn với bộ Trình mô phỏng để kiểm tra khả năng tích hợp của chúng với ứng dụng của bạn.

Triển khai cấu hình tiện ích mở rộng cho một dự án

Sau khi thêm một số phiên bản tiện ích mở rộng vào bảng kê khai tiện ích mở rộng của mình, bạn có thể triển khai tiện ích đó vào một dự án bằng cách sử dụng Firebase CLI. Khi triển khai bằng tệp kê khai tiện ích mở rộng, bạn 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 mở rộng trong tệp kê khai vào một dự án cùng một lúc.

Để triển khai một bảng kê khai tiện ích mở rộng:

  1. Từ dấu nhắc shell, hãy thay đổi thư mục chứa cấu hình tiện ích mở rộng đã lưu. (Đây là thư mục chứa firebase.json . Nếu bạn vừa chạy ext:export , thì bạn đã ở đúng thư mục.)
  2. Chạy lệnh deploy khai. Nếu bạn muốn triển khai các tiện ích mở rộng 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 xóa bất kỳ phiên bản tiện ích mở rộng nào khỏi dự án đích không được liệt kê trong firebase.json không, sau đó triển khai tất cả các phiên bản tiện ích mở rộng của bạn.

Cấu hình tiện ích mở rộng dành riêng cho dự án

Cấu hình tiện ích mở rộng đã lưu có thể được sử dụng để triển khai cho nhiều dự án khác nhau: ví dụ: dự án dàn dựng và dự án sản xuất. 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 từng dự án. Các tệp .env dành riêng cho dự án có thể thực hiện được điều 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 tiện ích mở rộng của mình: ví dụ: bạn có thể muốn cung cấp khóa API thử nghiệm thay vì khóa API sản xuất. Đặt các tham số này vào tệp .local :

  • Đặt các tham số không bí mật mà bạn muốn sử dụng trong quá trình mô phỏng trong extensions/ EXTENSION_INSTANCE_ID .env.local
  • Đặt các giá trị tham số bí mật trong extensions/ EXTENSION_INSTANCE_ID .secret.local