Wiadomości tematyczne w ramach technologii Flutter
Zadbaj o dobrą organizację dzięki kolekcji
Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.
Wysyłanie wiadomości do tematów w FCM opiera się na modelu publikowania i subskrybowania. Umożliwia ono wysyłanie wiadomości na wiele urządzeń, które subskrybują dany temat. Wiadomości tematyczne tworzysz w razie potrzeby, a FCM zajmuje się ich kierowaniem i niezawodnym dostarczaniem na odpowiednie urządzenia.
Na przykład użytkownicy lokalnej aplikacji do prognozowania pływów mogą włączyć temat „Alerty o prądach pływowych” i otrzymywać powiadomienia o optymalnych warunkach do połowów w określonych obszarach. Użytkownicy aplikacji sportowej mogą subskrybować automatyczne aktualizacje wyników meczów na żywo ulubionych drużyn.
O tematach warto pamiętać o tych kwestiach:
Wiadomości dotyczące tematu najlepiej sprawdzają się w przypadku treści takich jak prognoza pogody lub inne informacje dostępne publicznie.
Wiadomości dotyczące tematu są optymalizowane pod kątem przepustowości, a nie opóźnienia. Aby szybko i bezpiecznie dostarczać wiadomości do pojedynczych urządzeń lub małych grup urządzeń, kieruj wiadomości na tokeny rejestracji, a nie na tematy.
Jeśli chcesz wysyłać wiadomości na wiele urządzeń każdego użytkownika, w takich przypadkach rozważ użycie wiadomości do grup urządzeń.
Wiadomości tematyczne obsługują nieograniczoną liczbę subskrypcji każdego tematu. Usługa FCM
narzuca jednak limity w tych obszarach:
Jedna instancja aplikacji może subskrybować maksymalnie 2000 tematów.
Jeśli do subskrybowania instancji aplikacji używasz importu zbiorczego, każde żądanie jest ograniczone do 1000 instancji aplikacji.
Częstotliwość nowych subskrypcji jest ograniczona w przypadku każdego projektu. Jeśli w krótkim czasie wyślesz zbyt wiele żądań subskrypcji, serwery FCM odpowiedzą komunikatem 429 RESOURCE_EXHAUSTED („przekroczono limit”). Ponów próbę
ze wzrastającym czasem do ponowienia.
Subskrybowanie tematu przez aplikację kliencką
Aplikacje klienckie mogą subskrybować dowolny istniejący temat lub tworzyć nowy. Gdy aplikacja kliencka subskrybuje nową nazwę tematu (która nie istnieje jeszcze w Twoim projekcie Firebase), w FCM tworzony jest nowy temat o tej nazwie i każdy klient może go później subskrybować.
Aby zasubskrybować temat, wywołaj funkcję subscribeToTopic() z nazwą tematu. Ta metoda zwraca obiekt Future, który jest rozwiązywany, gdy subskrypcja zostanie utworzona:
Aby anulować subskrypcję, zadzwoń pod numer unsubscribeFromTopic() i podaj nazwę tematu.
subscribeToTopic() i unsubscribeFromTopic() nie są obsługiwane w przypadku klientów internetowych. Aby dowiedzieć się, jak zarządzać subskrypcjami użytkowników internetu, przeczytaj artykuł Wysyłanie wiadomości do tematów w internecie lub JavaScript.
[[["Łatwo zrozumieć","easyToUnderstand","thumb-up"],["Rozwiązało to mój problem","solvedMyProblem","thumb-up"],["Inne","otherUp","thumb-up"]],[["Brak potrzebnych mi informacji","missingTheInformationINeed","thumb-down"],["Zbyt skomplikowane / zbyt wiele czynności do wykonania","tooComplicatedTooManySteps","thumb-down"],["Nieaktualne treści","outOfDate","thumb-down"],["Problem z tłumaczeniem","translationIssue","thumb-down"],["Problem z przykładami/kodem","samplesCodeIssue","thumb-down"],["Inne","otherDown","thumb-down"]],["Ostatnia aktualizacja: 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)."]]