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

Dựa trên mô hình xuất bản/đăng ký, 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 tin nhắn theo chủ đề nếu cần và FCM xử lý việc định tuyến và gửi tin nhắn 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 địa phương có thể chọn tham gia chủ đề "cảnh báo dòng thủy triều" và nhận thông báo về điều kiện đánh bắt nước mặn tối ưu ở các khu vực cụ thể. Người dùng ứng dụng thể thao có thể đăng ký nhận bản cập nhật tự động về tỷ số trận đấu trực tiếp cho các đội yêu thích của họ.

Một số điều cần lưu ý về chủ đề:

  • Nhắn tin theo chủ đề phù hợp nhất với những 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 hóa về thông lượng thay vì độ trễ . Để gửi nhanh chóng, an toàn tới các thiết bị riêng lẻ hoặc nhóm thiết bị nhỏ, 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 tới nhiều thiết bị cho mỗi người dùng , hãy xem xét nhắn tin theo nhóm thiết bị cho các trường hợp sử dụng đó.

  • Tin nhắn theo chủ đề hỗ trợ đăng ký không giới hạn cho từng chủ đề. Tuy nhiên, FCM thực thi các giới hạn trong các lĩnh vực sau:

    • Một phiên bản ứng dụng có thể được đăng ký không quá 2000 chủ đề.
    • Nếu bạn đang sử dụng tính năng nhập hàng loạt để đăng ký phiên bản ứng dụng thì mỗi yêu cầu được giới hạn ở 1000 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 đăng ký trong một khoảng thời gian ngắn, máy chủ FCM sẽ phản hồi bằng phản hồi 429 RESOURCE_EXHAUSTED ("vượt quá hạn ngạch"). Thử lại với thời gian chờ theo cấp số nhân.

Đăng ký ứng dụng khách theo một chủ đề

Ứng dụng khách có thể đăng ký bất kỳ chủ đề hiện có nào hoặc có thể tạo chủ đề mới. Khi ứng dụng khách đăng ký tên chủ đề mới (tên chủ đề chưa tồn tại cho dự án Firebase của bạn), chủ đề mới có tên đó sẽ được tạo trong FCM và sau đó bất kỳ khách hàng nào cũng có thể đăng ký tên đó.

Để đăng ký một chủ đề, hãy gọi subscribeToTopic() với tên chủ đề. Phương thức này trả về Future , giải quyết khi đăng ký thành công:

await FirebaseMessaging.instance.subscribeToTopic("topic");

Để hủy đăng ký, hãy gọi unsubscribeFromTopic() với tên chủ đề.

subscribeToTopic()unsubscribeFromTopic() không được hỗ trợ cho ứng dụng khách web. Để tìm hiểu cách quản lý đăng ký cho người dùng web, hãy xem Gửi tin nhắn đến các chủ đề trên Web/JavaScript .

Bước tiếp theo