Phía máy chủ của Firebase Cloud Messaging bao gồm hai thành phần:
- Phần phụ trợ FCMdo Google cung cấp.
- Máy chủ ứng dụng hoặc môi trường máy chủ đáng tin cậy khác nơi logic máy chủ của bạn chạy, chẳng hạn như Cloud Functions cho Firebase hoặc các môi trường đám mây khác do Google quản lý.
Máy chủ ứng dụng hoặc môi trường máy chủ đáng tin cậy sẽ gửi yêu cầu thông báo đến phần phụ trợ FCM. Sau đó, phần phụ trợ này sẽ định tuyến thông báo đến các ứng dụng khách chạy trên thiết bị của người dùng.
Khi sử dụng giao thức máy chủ ứng dụng Firebase Admin SDK hoặc FCM, bạn có thể tạo yêu cầu thông báo và gửi đến các loại mục tiêu sau:
- Tên chủ đề
- Tình trạng
- Mã thông báo đăng ký FCM
- Tên nhóm thiết bị (chỉ giao thức)
Bạn có thể gửi thông báo kèm theo tải trọng thông báo được tạo từ các trường xác định trước, tải trọng dữ liệu của các trường do người dùng xác định hoặc thông báo chứa cả hai loại tải trọng. Hãy xem Các loại thông báo để biết thêm thông tin.
Yêu cầu đối với môi trường máy chủ đáng tin cậy
Môi trường máy chủ ứng dụng của bạn phải đáp ứng các tiêu chí sau:
- Có thể gửi yêu cầu thông báo được định dạng đúng đến phần phụ trợ FCM.
- Có thể xử lý yêu cầu và gửi lại yêu cầu đó bằng cách sử dụng khoảng thời gian đợi luỹ thừa.
- Có thể lưu trữ thông tin xác thực uỷ quyền máy chủ và mã thông báo đăng ký của ứng dụng khách một cách an toàn.
Thông tin xác thực bắt buộc đối với dự án Firebase
Tuỳ thuộc vào các tính năng FCM mà bạn triển khai, bạn có thể cần các thông tin xác thực sau đây từ dự án Firebase:
| Thông tin xác thực | Mô tả |
|---|---|
| Mã dự án | Mã nhận dạng duy nhất cho dự án Firebase, được dùng trong các yêu cầu gửi đến điểm cuối HTTP v1 của FCM. Giá trị này có trong ngăn Firebase điều khiển Cài đặt. |
| Mã thông báo đăng ký | Chuỗi mã thông báo duy nhất xác định từng thực thể ứng dụng khách. Bạn cần có mã thông báo đăng ký để gửi thông báo cho một thực thể ứng dụng và nhóm thiết bị. Xin lưu ý rằng bạn phải giữ bí mật mã thông báo đăng ký. |
| Mã người gửi | Giá trị số duy nhất được tạo khi bạn tạo dự án Firebase, có trong thẻ Cloud Messaging của bảng điều khiển Firebase Cài đặt ngăn. Mã người gửi giống với số dự án. Mã người gửi được dùng để xác định từng người gửi có thể gửi thông báo đến ứng dụng khách. |
| Mã truy cập | Mã thông báo OAuth 2.0 có thời hạn ngắn, cho phép các yêu cầu gửi đến API HTTP v1. Mã thông báo này được liên kết với một tài khoản dịch vụ thuộc dự án Firebase của bạn. Để tạo và luân phiên mã truy cập, hãy làm theo các bước được mô tả trong Cho phép yêu cầu gửi. |
Chọn một tuỳ chọn máy chủ
Bạn cần quyết định cách tương tác với FCM máy chủ: sử dụng Firebase Admin SDK hoặc FCM API HTTP v1. Vì hỗ trợ các ngôn ngữ lập trình phổ biến và các phương thức tiện lợi để xử lý quy trình xác thực và uỷ quyền, nên bạn nên sử dụng Firebase Admin SDK
Các tuỳ chọn tương tác với máy chủ FCM bao gồm:
API HTTP v1 của FCM FCM, một API REST có khả năng uỷ quyền an toàn và nhắn tin linh hoạt trên nhiều nền tảng (Firebase Admin SDK dựa trên giao thức này và cung cấp tất cả các ưu điểm vốn có của giao thức).
Firebase Admin SDK
Firebase Admin SDK xử lý quy trình xác thực với phần phụ trợ, đồng thời hỗ trợ gửi thông báo và quản lý gói thuê bao chủ đề. Với Firebase Admin SDK, bạn có thể:
- Gửi thông báo đến từng thực thể ứng dụng
- Gửi thông báo đến các chủ đề và câu lệnh điều kiện khớp với một hoặc nhiều chủ đề
- Gửi thông báo đến các nhóm thiết bị
- Đăng ký và huỷ đăng ký thực thể ứng dụng đối với các chủ đề
- Tạo tải trọng thông báo phù hợp với các nền tảng mục tiêu khác nhau
Để thiết lập Firebase Admin SDK, hãy xem bài viết Thêm Firebase Admin SDK vào máy chủ. Nếu bạn đã có dự án Firebase, hãy bắt đầu bằng cách Thêm SDK. Ngoài ra, hãy nhớ bật API Firebase Cloud Messaging (V1) trong trang cài đặt Gửi thông báo qua đám mây cho dự án của bạn. Sau đó, sau khi cài đặt Firebase Admin SDK, bạn có thể bắt đầu viết logic để tạo yêu cầu gửi.
FCM API HTTP v1
FCM cung cấp FCM HTTP v1 API cho những nhà phát triển thích giao thức máy chủ thô.
Để gửi thông báo, máy chủ ứng dụng sẽ gửi yêu cầu POST kèm theo tiêu đề HTTP và nội dung HTTP bao gồm các cặp giá trị khoá JSON. Để biết thông tin chi tiết về các tuỳ chọn tiêu đề và nội dung, hãy xem bài viết Gửi thông báo bằng FCM API HTTP v1.