Nhắn tin theo chủ đề trên Flutter

Dựa trên mô hình xuất bản/đăng ký, tính năng nhắn tin theo chủ đề FCM cho phép bạn gửi tin nhắn đến nhiều thiết bị đã chọn tham gia một chủ đề cụ thể. Bạn soạn thông báo chủ đề như cần thiết, 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 thuỷ triều cục bộ có thể chọn nhận chủ đề "cảnh báo dòng thuỷ triều" và nhận thông báo về điều kiện câu 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 trận đấu cho đội 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.

  • Thông báo theo chủ đề được tối ưu hoá cho thông lượng thay vì độ trễ. Để gửi nhanh, an toàn đến các thiết bị riêng lẻ hoặc các nhóm nhỏ thiết bị, hãy nhắm mục tiêu thông báo đến mã thông báo đăng ký thay vì 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 các trường hợp sử dụng đó.

  • Tính năng nhắn tin theo chủ đề hỗ trợ số lượt đăng ký không giới hạn cho mỗi chủ đề. Tuy nhiên, FCM thực thi các giới hạn trong những khía cạnh 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ẽ được 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 tỷ lệ cho mỗi dự án. Nếu bạn gửi quá nhiều yêu cầu thuê bao trong một khoảng thời gian ngắn, thì máy chủ FCM sẽ phản hồi bằng một phản hồi 429 RESOURCE_EXHAUSTED ("vượt 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 theo một chủ đề

Ứng dụng khách có thể đăng ký theo dõi bất kỳ chủ đề hiện có nào 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ủ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() bằng tên chủ đề. Phương thức này trả về 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()unsubscribeFromTopic() không được hỗ trợ cho các ứ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