Dựa trên mô hình xuất bản/đăng ký, tính năng nhắn tin theo chủ đề của FCM cho phép bạn gửi một thông báo đến nhiều thiết bị đã chọn nhận một chủ đề cụ thể. Bạn soạn thông báo theo chủ đề khi cần, còn FCM sẽ xử lý việc định tuyến và gửi 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 thuỷ triều tại địa phương có thể chọn nhận thông báo về chủ đề "dòng thuỷ triều" và nhận thông báo về điều kiện đánh bắt cá nước mặn tối ưu ở những khu vực cụ thể. 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ủ đề:
Nhắn tin theo chủ đề phù hợp nhất với nội dung như thời tiết hoặc thông tin công khai khác.
Thông báo theo chủ đề được tối ưu hoá cho thông lượng thay vì độ trễ. Để gửi nhanh và an toàn đến các thiết bị riêng lẻ hoặc 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 thông báo đến nhiều thiết bị cho mỗi người dùng, hãy cân nhắc sử dụng tính năng 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 kênh đăng ký không giới hạn cho mỗi chủ đề. Tuy nhiên, FCM sẽ áp dụng các giới hạn trong những trường hợp sau:
- Một phiên bản ứng dụng 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 đăng ký mới bị giới hạn theo tốc độ cho 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, các máy chủ FCM sẽ phản hồi bằng phản hồi
429 RESOURCE_EXHAUSTED
("vượt quá hạn mức"). Thử lại với thời gian đợi luỹ thừa.
Đăng ký ứng dụng khách vào một chủ đề
Ứng dụng khách có thể đăng ký theo dõi bất kỳ chủ đề nào hiện có hoặc có thể 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ó tên đó sẽ được tạo trong FCM và sau đó, mọi ứng dụng khách đều có thể đăng ký chủ đề đó.
Để đăng ký một chủ đề, hãy gọi subscribeToTopic()
bằng tên chủ đề. Phương thức này trả về một Future
, sẽ 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 các ứng dụng web. Để tìm hiểu cách quản lý các lượt đăng ký 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 thông báo theo chủ đề.
- Tìm hiểu cách Quản lý lượt đăng ký chủ đề trên máy chủ.