Quản lý cấu hình dự án bằng tệp kê khai tiện ích

Tệp kê khai tiện ích là danh sách các phiên bản tiện ích và . 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 giữa các dự án khác nhau (chẳng hạn như từ dự án thử nghiệm cho dự án sản xuất)
  • Triển khai tất cả các tiện ích cùng một lúc
  • Kiểm tra cách 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
  • Xác nhận cấu hình tiện ích cho quyền kiểm soát nguồn
  • Đưa tiện ích vào quy trình CI/CD

Tệp kê khai tiện ích có hai phần:

  • Phần extensions trên firebase.json của bạn, là một bản đồ của các thực thể Mã nhận dạng 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",
     }
    }
    
  • .env tệp chứa cấu hình cho mỗi tiện ích của bạn thực thể, trong thư mục con extensions/ của dự án Firebase thư mục. Ví dụ: một thực thể 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 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 của bạn 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 pháp đầu tiên sẽ được giải thích ở bên dưới.

Quản lý tệp kê khai tiện ích của bạn 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 Giao diện dòng lệnh (CLI) của Firebase với 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.

Ví dụ:

firebase ext:install --local firebase/firestore-bigquery-export

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 firebase/firestore-bigquery-export và lưu cấu hình vào tệp kê khai nhưng 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 của 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 một dự án

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

  1. Hãy thiết lập Giao diện dòng lệnh (CLI) của Firebase nếu bạn chưa thực hiện
  2. Từ lời nhắc shell, hãy thay đổi sang thư mục dự án. (Dự án của bạn thư mục chứa tệp firebase.json).
  3. Chạy lệnh ext:export:
    firebase ext:export

Lệnh ext:export sẽ thêm một phần extensions vào 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 bạn đã cài đặt. Các chứa thông số cấu hình cho mỗi phiên bản.

Thử nghiệm cấu hình tiện ích bằng Firebase Local Emulator Suite

Sau khi thêm một số bản sao tiện ích vào tệp kê khai tiện ích, bạn có thể hãy thử nghiệm chúng bằng Local Emulator Suite.

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

  2. Bắt đầu Local Emulator Suite:

    • Để chạy Bộ mô phỏng theo cách có tính 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 thử, hãy chạy mã: firebase emulators:exec my-test.sh

Giờ đây, nếu có các bản sao tiện ích được liệt kê trong tệp kê khai, 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 sẽ có thể kích hoạt bất kỳ tiện ích các hàm được kích hoạt ở chế độ nền và kết nối ứng dụng với Trình mô phỏng để kiểm tra 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ố bản sao tiện ích vào tệp kê khai tiện ích, bạn có thể triển khai ứng dụng cho một dự án bằng Giao diện dòng lệnh (CLI) của Firebase. Khi bạn triển khai bằng tệp kê khai tiện ích, bạn cài đặt, cập nhật và định cấu hình tất cả tiện ích thực thể trong tệp kê khai vào một dự án cùng lúc.

Cách triển khai tệp kê khai tiện ích:

  1. Từ dấu nhắc lệnh shell, hãy thay đổi sang thư mục chứa dữ liệu đã lưu cấu hình tiện ích. (Đây là thư mục chứa firebase.json. Nếu bạn vừa chạy ext:export thì bạn đã ở bên phải thư mục.)
  2. Chạy lệnh deploy. Nếu bạn muốn triển khai tiện ích cho một dự án ngoài mã hiện tại, hãy chỉ định cả --project=:
    firebase deploy --only extensions –-project=YOUR_PROJECT_ID

Lệnh deploy sẽ xác thực từng cấu hình của thực thể, hỏi xem bạn có muốn để xoá mọi bản sao tiện ích khỏi dự án đích không được liệt kê trong firebase.json, rồi triển khai tất cả các phiên bản tiện ích.

Cấu hình phần mở rộng dành riêng cho dự án

Bạn có thể sử dụng các cấu hình tiện ích đã lưu để triển khai cho nhiều tiện ích khác nhau dự án: ví dụ: dự án thử nghiệm và dự án sản xuất. Trong khi thực hiện điều này, một số giá trị thông số có thể cần phải khác nhau cho từng dự án. Các tệp .env dành riêng cho dự án giúp thực hiện điều này:

  • Đặt các giá trị tham số khác nhau giữa các dự án vào extensions/EXTENSION_INSTANCE_ID.env.YOUR_PROJECT_ID
  • Đặt các giá trị thông số dùng chung 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: ví dụ: bạn có thể muốn cung cấp khoá API thử nghiệm thay vì sản xuất mộ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 extensions/EXTENSION_INSTANCE_ID.env.local
  • Đặt các giá trị thông số bí mật vào extensions/EXTENSION_INSTANCE_ID.secret.local