Dựa trên mô hình phát hành/đăng ký, tính năng nhắn tin theo chủ đề của FCM cho phép bạn gửi tin nhắn đến nhiều thiết bị đã chọn nhận một chủ đề cụ thể. Bạn soạn thông báo chủ đề nếu cần, còn FCM sẽ xử lý việc định tuyến và truyền thông báo một cách đáng tin cậy đến đúng thiết bị.
Ví dụ: người dùng ứng dụng dự báo thủy triều tại địa phương có thể chọn sử dụng chủ đề "cảnh báo về dòng thủy triều" và nhận thông báo về điều kiện câu cá nước mặn tối ưu ở các khu vực được chỉ định. Người dùng ứng dụng thể thao có thể đăng ký nhận thông tin cập nhật tự động về tỷ số trực tiếp của các đội mà họ yêu thích.
Một số điều cần lưu ý về chủ đề:
Tính năng nhắn tin theo chủ đề phù hợp nhất với nội dung như thời tiết hoặc các thông tin công khai khác.
Tin nhắn theo chủ đề được tối ưu hoá cho băng thông thay vì độ trễ. Để phân phối nhanh và an toàn đến một thiết bị hoặc một nhóm nhỏ thiết bị, hãy nhắm mục tiêu tin nhắn đến mã thông báo đăng ký, chứ không phải chủ đề.
Nếu bạn cần gửi tin nhắn đến nhiều thiết bị cho mỗi người dùng, hãy cân nhắc việc nhắn tin theo nhóm thiết bị cho những trường hợp sử dụng đó.
Tính năng nhắn tin theo chủ đề hỗ trợ số lượng đăng ký không giới hạn cho mỗi chủ đề. Tuy nhiên, FCM sẽ thực thi các giới hạn trong những lĩnh vực sau:
- Một phiên bản ứng dụng chỉ có thể đăng ký tối đa 2.000 chủ đề.
- Nếu bạn đang sử dụng tính năng nhập hàng loạt để đăng ký các phiên bản ứng dụng, thì mỗi yêu cầu sẽ bị giới hạn ở 1.000 phiên bản ứng dụng.
- Tần suất của các gói thuê bao mới bị giới hạn tốc độ trên mỗi dự án. Nếu bạn gửi quá nhiều yêu cầu đăng ký trong một khoảng thời gian ngắn, máy chủ FCM sẽ phản hồi bằng một phản hồi
429 RESOURCE_EXHAUSTED
("quá hạn mức"). Hãy thử lại với thời gian đợi luỹ thừa.
Đăng ký ứng dụng khách cho một chủ đề
Ứng dụng khách có thể đăng ký bất kỳ chủ đề hiện có nào hoặc tạo một chủ đề mới. Khi một ứng dụng khách đăng ký một tên chủ đề mới (tên chưa tồn tại cho dự án Firebase của bạn), một chủ đề mới của tên đó sẽ được tạo trong FCM và mọi ứng dụng sau đó có thể đăng ký tên chủ đề đó.
Để đăng ký một chủ đề, hãy gọi subscribeToTopic()
với tên chủ đề. Phương thức này trả về một Future
, giúp phân giải khi gói thuê bao thành công:
await FirebaseMessaging.instance.subscribeToTopic("topic");
Để huỷ đăng ký, hãy gọi unsubscribeFromTopic()
bằng tên chủ đề.
subscribeToTopic()
và unsubscribeFromTopic()
không được hỗ trợ cho ứng dụng web. Để tìm hiểu cách quản lý gói thuê bao cho người dùng web, hãy xem bài viết Gửi thông báo đến các chủ đề trên web/JavaScript.
Các bước tiếp theo
- Tìm hiểu cách gửi tin nhắn theo chủ đề.
- Tìm hiểu cách Quản lý gói thuê bao chủ đề trên máy chủ.