Phía máy chủ của Firebase Cloud Messaging bao gồm 2 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ủ đề
- Điều kiện
- Mã đăng ký FCM
- Tên nhóm thiết bị (không dùng nữa, sẽ bị xoá vào ngày 29 tháng 9 năm 2027)
Bạn có thể gửi thông báo kèm theo tải trọng thông báo gồm các trường được xác định trước, tải trọng dữ liệu gồm 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. Xem bài viết 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 cách đế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ã đăng ký ứng dụng 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 | Giá trị nhận dạng riêng biệt cho dự án Firebase của bạn, đượ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ã đă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ã đă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ã đă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ã OAuth 2.0 có thời gian tồn tại ngắn, cho phép các yêu cầu gửi đến API HTTP v1. Mã 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ợ trên 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ý quá trình xác thực và uỷ quyền, nên bạn nên sử dụng Firebase Admin SDK.
Các lựa chọn để tương tác với FCM máy chủ bao gồm:
API HTTP v1 của FCM API, 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 lợi thế vốn có của giao thức).
Firebase Admin SDK
Firebase Admin SDK xử lý quá 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 vào và khỏi 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.