Trang này giải thích cách bạn có thể phát hành một tiện ích trên Trung tâm tiện ích.
Trước khi bắt đầu
Để phát hành một tiện ích, trước tiên, bạn cần đăng ký làm nhà xuất bản tiện ích.
Nguồn có thể xác minh
Tất cả các tiện ích được phát hành trên Trung tâm tiện ích đều phải có nguồn có thể xác minh công khai. Thay vì tải trực tiếp mã nguồn tiện ích lên Trung tâm tiện ích, bạn sẽ chỉ định vị trí nguồn và Trung tâm tiện ích sẽ tải mã nguồn xuống và tạo tiện ích từ đó.
Hiện tại, điều này có nghĩa là bạn phải cung cấp mã nguồn tiện ích trên một kho lưu trữ GitHub công khai.
Việc tải lên từ một nguồn có thể xác minh mang lại một số lợi ích:
- Người dùng có thể kiểm tra mã nguồn của bản sửa đổi cụ thể của tiện ích sẽ được cài đặt.
- Bạn có thể đảm bảo chỉ tải lên những gì bạn dự định tải lên, chứ không phải, ví dụ: công việc đang tiến hành hoặc các tệp lạc hậu còn lại từ quá trình phát triển.
Chu kỳ phát triển được đề xuất
Các công cụ phát triển Tiện ích Firebase hỗ trợ tải các phiên bản phát hành trước của tiện ích lên, giúp bạn dễ dàng kiểm thử tiện ích và quy trình cài đặt tiện ích trong cùng một môi trường mà cuối cùng chúng sẽ được phát hành.
Tính năng này giúp bạn có thể thực hiện chu kỳ phát triển như sau:
Phát triển và nhanh chóng lặp lại tiện ích bằng Bộ mô phỏng Firebase.
Kiểm thử tiện ích trong một dự án thực bằng cách cài đặt tiện ích đó từ nguồn địa phương:
firebase ext:install /path/to/extensionfirebase deploy --only extensionsTải phiên bản phát hành trước lên Trung tâm tiện ích (xem bên dưới). Phân phối đường liên kết cài đặt để kiểm thử rộng hơn và lặp lại bằng cách tải thêm các phiên bản phát hành trước khi cần.
Tải phiên bản cuối cùng, ổn định lên Trung tâm tiện ích (xem bên dưới) và gửi để xem xét. Nếu tiện ích vượt qua quy trình xem xét, tiện ích đó sẽ được phát hành trên Trung tâm tiện ích.
Tăng số phiên bản trong
extension.yamlvà lặp lại chu kỳ này cho phiên bản tiếp theo của tiện ích.
Tải tiện ích mới lên
Cách tải tiện ích lên lần đầu tiên:
Không bắt buộc: Xác nhận mã của bạn vào một kho lưu trữ GitHub công khai.
Chạy lệnh
ext:dev:uploadcủa Giao diện dòng lệnh (CLI) của Firebase:GitHub
firebase ext:dev:upload your_publisher_id/your_extension_idNguồn địa phương
cd /path/to/extensionfirebase ext:dev:upload your_publisher_id/your_extension_id --localTrong lệnh gọi, bạn chỉ định những nội dung sau:
Mã nhà xuất bản mà bạn đã đăng ký.
Một chuỗi mã nhận dạng tiện ích. Đặt tên cho tiện ích của bạn theo định dạng sau:
firebase-product-description-of-tasks-performed. Ví dụ:firestore-bigquery-export
Lệnh này sẽ nhắc bạn cung cấp thêm thông tin:
Nếu bạn đang tải lên từ GitHub:
URL đến kho lưu trữ của tiện ích trong GitHub. Xin lưu ý rằng một kho lưu trữ có thể chứa nhiều tiện ích miễn là mỗi tiện ích có một thư mục gốc riêng.
Khi bạn tải một tiện ích mới lên lần đầu tiên, kho lưu trữ sẽ được đăng ký làm nguồn chính tắc cho tiện ích đó.
Thư mục trong kho lưu trữ chứa tiện ích của bạn.
Tham chiếu Git của cam kết mà bạn muốn tạo nguồn phiên bản tiện ích. Đây có thể là mã băm cam kết, thẻ hoặc tên nhánh.
Giai đoạn phát hành của phiên bản bạn đang tải lên.
Các giai đoạn
alpha,betavàrc(ứng viên phát hành) dùng để tải các phiên bản phát hành trước lên để người kiểm thử cài đặt. Hãy sử dụng một trong các giai đoạn này cho lần tải lên ban đầu của một tiện ích mới.Giai đoạn
stableđược dùng cho các bản phát hành công khai sẽ được phát hành trên Trung tâm tiện ích. Việc tải bản phát hànhstablelên sẽ tự động bắt đầu quy trình xem xét và nếu vượt qua, sẽ phát hành tiện ích.
Xin lưu ý rằng bạn không chỉ định số phiên bản – giá trị này lấy từ tệp
extension.yaml. Khi bạn tải một phiên bản tiện ích phát hành trước lên, giai đoạn và số lượt tải lên sẽ được thêm vào phiên bản đó. Ví dụ: nếuextension.yamlchỉ định phiên bản 1.0.1 và bạn tải một ứng viên phát hành lên, thì phiên bản đó sẽ là1.0.1-rc.0; việc tải một ứng viên phát hành khác của cùng phiên bản sẽ tự động tăng số lượt tải lên, dẫn đến1.0.1-rc.1, v.v.
Giờ đây, sau khi tải phiên bản phát hành trước của tiện ích lên, bạn có thể chia sẻ phiên bản đó với người khác để kiểm thử. Người dùng có thể cài đặt tiện ích của bạn theo một trong hai cách:
Với bảng điều khiển: Người dùng có thể cài đặt tiện ích bằng cách nhấp vào một đường liên kết có định dạng sau:
https://console.firebase.google.com/project/_/extensions/install?ref=your_publisher_id/your_extension_id@version
Bạn có thể chia sẻ đường liên kết trực tiếp với người kiểm thử.
Với CLI: Người dùng có thể cài đặt tiện ích bằng cách truyền chuỗi mã tiện ích vào lệnh
ext:install:firebase ext:install your_publisher_id/your_extension_id@version \ --project=destination_project_id
Tải phiên bản đã cập nhật lên
Sau khi tải phiên bản đầu tiên của một tiện ích lên, bạn có thể tải các bản cập nhật lên để khắc phục vấn đề, thêm tính năng hoặc chuyển sang giai đoạn phát hành tiếp theo. Khi bạn tải một phiên bản mới lên, người dùng đã cài đặt phiên bản cũ hơn của tiện ích mở rộng của bạn sẽ được nhắc nâng cấp trong bảng điều khiển Firebase.
Cách tải bản cập nhật lên:
Không bắt buộc: Xác nhận mã của bạn vào một kho lưu trữ Git công khai.
Chạy lệnh
ext:dev:uploadcủa Giao diện dòng lệnh (CLI) của Firebase:GitHub
firebase ext:dev:upload your_publisher_id/your_extension_idLần này, bạn sẽ không được nhắc chỉ định kho lưu trữ GitHub hoặc thư mục gốc của tiện ích vì chúng đã được định cấu hình cho tiện ích của bạn. Nếu bạn đã tái cấu trúc kho lưu trữ hoặc di chuyển sang một kho lưu trữ mới, bạn có thể thay đổi chúng bằng các đối số lệnh
--rootvà--repo.Nguồn địa phương
cd /path/to/extensionfirebase ext:dev:upload your_publisher_id/your_extension_id --local
Gửi tiện ích để phát hành
Khi bạn đã sẵn sàng phát hành công khai tiện ích:
Xác nhận mã của bạn vào một kho lưu trữ Git công khai. (Bắt buộc đối với các bản phát hành công khai.)
Chạy lệnh
ext:dev:uploadcủa Giao diện dòng lệnh (CLI) của Firebase, chỉ địnhstablelàm giai đoạn phát hành:firebase ext:dev:upload your_publisher_id/your_extension_idNếu bạn đã phát hành một phiên bản tiện ích trước đó, thì việc tải một bản phát hành ổn định mới lên sẽ tự động gửi tiện ích để xem xét.
Nếu bạn đã tải bản phát hành ổn định đầu tiên của tiện ích lên, hãy tìm tiện ích đó trên trang tổng quan của nhà xuất bản, rồi nhấp vào Phát hành lên Trung tâm tiện ích.
Sau khi gửi, quy trình xem xét có thể mất vài ngày. Nếu được chấp nhận, tiện ích sẽ được phát hành lên Trung tâm tiện ích. Nếu bị từ chối, bạn sẽ nhận được một thông báo giải thích lý do; sau đó, bạn có thể giải quyết các vấn đề được báo cáo và gửi lại để xem xét.
Để đẩy nhanh quy trình xem xét và tăng cơ hội vượt qua ngay lần đầu tiên, trước khi gửi, hãy kiểm tra kỹ những điều sau:
- Bạn đã kiểm thử kỹ lưỡng tiện ích và quy trình cài đặt.
- Tài liệu của bạn đầy đủ và chính xác, đồng thời hiển thị tốt trong bảng điều khiển Firebase.
- Tên và thương hiệu của nhà xuất bản xác định rõ ràng và chính xác bạn là nhà xuất bản.
- Tên, nội dung mô tả và biểu tượng của tiện ích thể hiện rõ ràng và chính xác mục đích của tiện ích.
- Bạn đã áp dụng các thẻ hữu ích và chính xác.
- Bạn đã khai báo trong
extension.yamltất cả các API của Google và không phải của Google mà bạn sử dụng, cũng như tất cả các loại sự kiện mà tiện ích của bạn phát ra. - Bạn chỉ yêu cầu quyền truy cập vào những vai trò cần thiết để tiện ích hoạt động và bạn đã giải thích rõ ràng cho người dùng lý do bạn cần quyền truy cập đó.
- Các tệp nguồn của bạn được cấp phép rõ ràng theo các điều khoản của
Apache-2.0.
Quản lý các tiện ích đã tải lên và phát hành
Liệt kê các tiện ích đã tải lên
Để liệt kê các tiện ích bạn đã tải lên theo mã nhà xuất bản, hãy làm theo một trong những cách sau:
Trang tổng quan của nhà xuất bản
Xem các tiện ích đó trên trang tổng quan của nhà xuất bản.
Giao diện dòng lệnh (CLI) của Firebase
Chạy lệnh ext:dev:list:
firebase ext:dev:list your_publisher_idXem mức sử dụng các tiện ích đã tải lên
Để xem mức sử dụng các tiện ích bạn đã tải lên theo mã nhà xuất bản, hãy làm theo một trong những cách sau:
Trang tổng quan của nhà xuất bản
Giao diện dòng lệnh (CLI) của Firebase
Chạy lệnh ext:dev:usage:
firebase ext:dev:usage your_publisher_idNgừng sử dụng một phiên bản tiện ích
Tại một số thời điểm, bạn có thể muốn ngừng sử dụng một phiên bản cũ của tiện ích. Ví dụ: nếu bạn phát hành một phiên bản mới giúp khắc phục một lỗi nghiêm trọng hoặc cập nhật một phần phụ thuộc bằng một bản cập nhật bảo mật quan trọng, thì bạn cần ngăn người dùng mới cài đặt phiên bản cũ và khuyến khích người dùng hiện tại nâng cấp.
Để ngừng sử dụng một phiên bản tiện ích, hãy làm theo một trong những cách sau:
Trang tổng quan của nhà xuất bản
- Trên trang tổng quan của nhà xuất bản, hãy nhấp vào tiện ích để mở chế độ xem chi tiết.
- Chọn phiên bản bạn muốn ngừng sử dụng.
- Nhấp vào Ngừng sử dụng phiên bản.
Giao diện dòng lệnh (CLI) của Firebase
Chạy lệnh ext:dev:deprecate:
firebase ext:dev:deprecate your_publisher_id/your_extension_id versions \
[--message "deprecation_message"]Bạn có thể chỉ định một phiên bản hoặc một dải phiên bản. Ví dụ:
1.0.21.1.0-1.1.7<1.2.01.1.*
Các phiên bản tiện ích đã ngừng sử dụng không được liệt kê trên Trung tâm tiện ích và không thể cài đặt. Người dùng có dự án đã cài đặt một phiên bản đã ngừng sử dụng sẽ thấy một thông báo khuyến khích họ nâng cấp; họ vẫn có thể sử dụng và định cấu hình lại tiện ích trong thời gian chờ.
Nếu mọi phiên bản của một tiện ích đều đã ngừng sử dụng, thì tiện ích đó sẽ được coi là đã ngừng sử dụng và sẽ bị xoá khỏi danh sách trên Trung tâm tiện ích. Việc tải một phiên bản mới của tiện ích đã ngừng sử dụng lên sẽ tự động bắt đầu quy trình xem xét và sau khi được chấp nhận, sẽ phát hành lại tiện ích đó trên Trung tâm tiện ích.
Để đảo ngược việc ngừng sử dụng, hãy sử dụng trang tổng quan của nhà xuất bản hoặc chạy lệnh ext:dev:undeprecate của Giao diện dòng lệnh (CLI) của Firebase:
firebase ext:dev:undeprecate your_publisher_id/your_extension_id versions
Phụ lục: Khắc phục lỗi bản dựng
Khi bạn tải tiện ích lên, phần phụ trợ sẽ tạo mã nguồn của bạn trước tiên bằng quy trình sau:
Sao chép kho lưu trữ GitHub và kiểm xuất tham chiếu nguồn đã chỉ định.
Cài đặt các phần phụ thuộc NPM bằng cách chạy
npm clean-installtrong mọi thư mục nguồn hàm được chỉ định trongextension.yaml(xemsourceDirectorytrong tài nguyên Cloud Functions).Lưu ý những điều sau:
Mỗi tệp
package.jsonphải có một tệppackage-lock.jsontương ứng. Để biết thêm thông tin, hãy xem npm-ci.Tập lệnh sau khi cài đặt sẽ không chạy trong quá trình cài đặt phần phụ thuộc. Nếu bản dựng mã nguồn của bạn dựa vào tập lệnh sau khi cài đặt, hãy tái cấu trúc bản dựng đó trước khi tải lên.
Tạo mã của bạn bằng cách chạy
npm run buildtrong mọi thư mục nguồn hàm được chỉ định trongextension.yaml.
Chỉ thư mục gốc của tiện ích mới được lưu trong gói tiện ích cuối cùng sẽ được chia sẻ.
Nếu bạn gặp lỗi bản dựng khi tải tiện ích lên, hãy sao chép các bước tạo bản dựng ở trên cục bộ trong một thư mục mới cho đến khi không còn lỗi, sau đó thử tải lên lại.