Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang
Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.
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 điệp 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 thuật toán 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 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:
Để 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.
[[["Dễ hiểu","easyToUnderstand","thumb-up"],["Giúp tôi giải quyết được vấn đề","solvedMyProblem","thumb-up"],["Khác","otherUp","thumb-up"]],[["Thiếu thông tin tôi cần","missingTheInformationINeed","thumb-down"],["Quá phức tạp/quá nhiều bước","tooComplicatedTooManySteps","thumb-down"],["Đã lỗi thời","outOfDate","thumb-down"],["Vấn đề về bản dịch","translationIssue","thumb-down"],["Vấn đề về mẫu/mã","samplesCodeIssue","thumb-down"],["Khác","otherDown","thumb-down"]],["Cập nhật lần gần đây nhất: 2025-09-05 UTC."],[],[],null,["\u003cbr /\u003e\n\nBased on the publish/subscribe model, FCM topic messaging allows you to send a message\nto multiple devices that have opted in to a particular topic. You compose topic messages as\nneeded, and FCM handles routing and delivering the message reliably to the right\ndevices.\n\nFor example, users of a local tide\nforecasting app could opt in to a \"tidal currents alerts\" topic and receive\nnotifications of optimal saltwater fishing conditions in specified areas. Users of a sports app\ncould subscribe to automatic updates in live game scores for their favorite\nteams.\n\nSome things to keep in mind about topics:\n\n- Topic messaging is best suited for content such as weather, or other publicly\n available information.\n\n- Topic messages are **optimized for throughput rather than latency** . For fast,\n secure delivery to single devices or small groups of devices,\n [target messages to registration tokens](/docs/cloud-messaging/send-message#send_messages_to_specific_devices),\n not topics.\n\n- If you need to send messages to multiple devices *per user* , consider\n [device group messaging](/docs/cloud-messaging/send-message#send_messages_to_device_groups)\n for those use cases.\n\n- Topic messaging supports unlimited subscriptions for each topic. However, FCM\n enforces limits in these areas:\n\n - One app instance can be subscribed to no more than 2000 topics.\n - If you are using [batch import](https://developers.google.com/instance-id/reference/server#manage_relationship_maps_for_multiple_app_instances) to subscribe app instances, each request is limited to 1000 app instances.\n - The frequency of new subscriptions is rate-limited per project. If you send too many subscription requests in a short period of time, FCM servers will respond with a `429 RESOURCE_EXHAUSTED` (\"quota exceeded\") response. Retry with exponential backoff.\n\nSubscribe the client app to a topic\n\nClient apps can subscribe to any existing topic, or they can create a new\ntopic. When a client app subscribes to a new topic name (one that does\nnot already exist for your Firebase project), a new topic of that name is\ncreated in FCM and any client can subsequently subscribe to it.\n\nTo subscribe to a topic, call `subscribeToTopic()` with the topic name. This method\nreturns a `Future`, which resolves when the subscription succeeded: \n\n await FirebaseMessaging.instance.subscribeToTopic(\"topic\");\n\nTo unsubscribe, call `unsubscribeFromTopic()` with the topic name.\n\n`subscribeToTopic()` and `unsubscribeFromTopic()` are not supported for web\nclients. To learn how to manage subscriptions for web users, see\n[Send messages to topics on Web/JavaScript](https://firebase.google.com/docs/cloud-messaging/js/topic-messaging).\n\nNext steps\n\n- Learn how to [send topic messages](/docs/cloud-messaging/send-message#send-messages-to-topics).\n- Learn how to [Manage topic subscriptions on the server](/docs/cloud-messaging/manage-topics)."]]