Tiện ích Firebase thực hiện một nhiệm vụ cụ thể hoặc một nhóm nhiệm vụ để phản hồi các yêu cầu HTTP hoặc kích hoạt sự kiện từ các sản phẩm khác của Firebase và Google, chẳng hạn như Giải pháp gửi thông báo qua đám mây của Firebase, Firestore hoặc Pub/Sub.
Bạn có thể tự tạo tiện ích để sử dụng cho cá nhân hoặc chia sẻ với mọi người trong Trung tâm tiện ích Firebase. Ví dụ: tiện ích của bạn có thể thực hiện một nhiệm vụ cụ thể mà ứng dụng của bạn thường xuyên cần, hoặc có thể giúp bạn dễ dàng truy cập vào một trong các API của công ty. Sau khi tạo tiện ích, bạn có thể chia sẻ tiện ích đó với người khác. Những người dùng đó có thể cài đặt và định cấu hình tiện ích để sử dụng trong các dự án Firebase của riêng họ.
Cấu trúc của tiện ích
Bạn có thể xem tiện ích có 3 thành phần chính:
- Mã Cloud Functions, bằng JavaScript hoặc TypeScript
- Siêu dữ liệu mô tả tiện ích
- Tài liệu giúp người dùng định cấu hình và sử dụng tiện ích
Để phát triển tiện ích, bạn hãy tập hợp các thành phần này theo cấu trúc sau:
example-extension
├── functions
│ ├── integration-tests
│ │ ├── extensions
│ │ │ └── example-extension.env
│ │ ├── firebase.json
│ │ └── integration-test.spec.js
│ ├── index.js
│ └── package.json
├── README.md
├── PREINSTALL.md
├── POSTINSTALL.md
├── CHANGELOG.md
├── icon.png
└── extension.yaml
- Thư mục
functionschứa mã Cloud Functions bằng JavaScript hoặc TypeScript. Đây là mã thực hiện các nhiệm vụ của tiện ích để phản hồi các sự kiện do các dịch vụ của Firebase và Google kích hoạt. - Tệp
extension.yamlchứa siêu dữ liệu về tiện ích, chẳng hạn như điều kiện kích hoạt và vai trò truy cập IAM, cũng như mọi tham số mà bạn muốn người dùng có thể định cấu hình. - Các tệp
PREINSTALL,POSTINSTALLvàCHANGELOGlà tài liệu tối thiểu mà tiện ích phải có. Các tệp này giúp người dùng tìm hiểu về chức năng của tiện ích, cách sử dụng tiện ích và những nội dung cập nhật mà bạn đã thực hiện. Bạn cũng nên cung cấp một biểu tượng để giúp người dùng nhận dạng tiện ích. Bảng điều khiển của Firebase, Giao diện dòng lệnh (CLI) của Firebase và Trung tâm tiện ích sẽ hiển thị nội dung của các tệp này khi người dùng khám phá, cài đặt và quản lý tiện ích.
Sau khi tạo tiện ích, bạn có thể sử dụng CLI Firebase để cài đặt tiện ích đó vào một dự án hoặc xuất bản tiện ích đó lên Trung tâm tiện ích. Tại đây, mọi người đều có thể khám phá và cài đặt tiện ích đó vào dự án của họ.
Tiện ích của tôi có thể tương tác với những sản phẩm nào?
Vì tiện ích Firebase hoạt động bằng Cloud Functions, nên bạn có thể xem xét câu hỏi về các khả năng tích hợp theo 2 cách: Những sản phẩm nào có thể kích hoạt các hàm của tiện ích? và Sau khi được kích hoạt, các hàm của tiện ích có thể tương tác với những sản phẩm nào?
Điều kiện kích hoạt hàm được hỗ trợ
Điều kiện kích hoạt thủ công
Trước hết, bạn có thể kích hoạt hàm theo cách thủ công. Tiện ích Firebase và Cloud Functions hỗ trợ 2 cách kích hoạt hàm theo cách thủ công:
- Điều kiện kích hoạt HTTP: triển khai hàm đến một điểm cuối HTTP
- Hàm có thể gọi: gọi trực tiếp Cloud Functions từ mã ứng dụng web, iOS hoặc Android bằng SDK máy khách Firebase.
Bằng cách hiển thị các điểm cuối HTTP từ tiện ích, tiện ích của bạn có thể tích hợp với mọi dịch vụ web hỗ trợ webhook. Với các hàm có thể gọi, người dùng cài đặt tiện ích của bạn có thể sử dụng SDK Firebase làm thư viện máy khách để truy cập vào API mà tiện ích của bạn triển khai.
Điều kiện kích hoạt dịch vụ Firebase
Hầu hết các sản phẩm của Firebase đều phát ra các sự kiện có thể kích hoạt Cloud Functions của tiện ích.
- Analytics: kích hoạt hàm khi Analytics ghi lại một sự kiện
- App Distribution: kích hoạt hàm khi App Distribution kích hoạt cảnh báo
- Xác thực: kích hoạt hàm khi người dùng tạo và xoá tài khoản
- Cloud Firestore: kích hoạt hàm khi các trang được tạo, cập nhật hoặc xoá
- Cloud Storage: kích hoạt hàm khi các đối tượng được tải lên, lưu trữ hoặc xoá khỏi nhóm lưu trữ
- Crashlytics: kích hoạt hàm khi Crashlytics kích hoạt cảnh báo
- Theo dõi hiệu suất: kích hoạt hàm khi tính năng Theo dõi hiệu suất kích hoạt cảnh báo
- Cơ sở dữ liệu theo thời gian thực: kích hoạt Functions khi dữ liệu được tạo, cập nhật hoặc xoá
- Cấu hình từ xa: kích hoạt hàm khi một tham số được cập nhật
- Phòng thí nghiệm kiểm thử: kích hoạt hàm khi Phòng thí nghiệm kiểm thử kích hoạt cảnh báo
Điều kiện kích hoạt dịch vụ Google Cloud
Tiện ích cũng có thể bao gồm các hàm kích hoạt một số dịch vụ Google Cloud không phải của Firebase:
- Cloud Pub/Sub: tiện ích có thể bao gồm các hàm kích hoạt khi các sự kiện được đăng lên một chủ đề Pub/Sub có thể định cấu hình.
- Cloud Scheduler: tiện ích có thể bao gồm các hàm chạy theo lịch biểu đã đặt
- Cloud Tasks: tiện ích có thể bao gồm các hàm có thể được đưa vào hàng đợi bằng Cloud Tasks. Tiện ích Firebase sử dụng khả năng này để cho phép bạn (tác giả tiện ích) viết các hàm phản hồi các sự kiện trong vòng đời của tiện ích: được cài đặt lần đầu tiên trong một dự án, được nâng cấp lên phiên bản mới và được định cấu hình lại.
- Eventarc: tiện ích có thể bao gồm các hàm kích hoạt khi các sự kiện được xuất bản lên một kênh Eventarc có thể định cấu hình; ngược lại, tiện ích có thể xuất bản các sự kiện của riêng mình lên một kênh Eventarc để cho phép người dùng xác định các hàm của riêng họ kích hoạt từ các sự kiện của tiện ích.
Hàm được hỗ trợ
Sau khi Cloud Functions của tiện ích được kích hoạt, phạm vi tích hợp có thể thường là không giới hạn. Sau đây là một số điểm nổi bật về những việc bạn có thể làm từ Cloud Functions:
- Đọc, ghi và tương tác với mọi dịch vụ Firebase hoặc Google Cloud sử dụng vai trò IAM được hỗ trợ.
- Làm việc với mọi dịch vụ của bên thứ ba cung cấp API web.
- Làm việc với các dịch vụ tuỳ chỉnh nếu bạn cung cấp API web.
- Chạy hầu hết các thư viện JavaScript, bao gồm TensorFlow.js, Express.js, v.v.
Cách tạo tiện ích
Hướng dẫn Bắt đầu sẽ hướng dẫn bạn quy trình tạo, kiểm thử và xuất bản một tiện ích hoàn chỉnh. Đây là cách nên dùng để tìm hiểu cách tạo tiện ích.
Sau khi xem hướng dẫn bắt đầu, bạn có thể tham khảo các hướng dẫn theo từng chủ đề. Các hướng dẫn này giải thích từng nhiệm vụ liên quan đến việc tạo tiện ích của riêng bạn:
- Viết hàm cho tiện ích
- Sử dụng tham số trong tiện ích
- Thiết lập quyền truy cập phù hợp cho tiện ích
- Phản hồi các sự kiện vòng đời của tiện ích
- Thêm hook người dùng vào tiện ích
- Tạo tài liệu người dùng cho tiện ích
- Xuất bản tiện ích trên Trung tâm tiện ích
- Hoàn tất tài liệu tham khảo về extension.yaml