Na podstawie modelu publikowania i subskrybowania wiadomości na tematy w FCM możesz wysyłać wiadomości do wielu urządzeń, które zostały zarejestrowane w przypadku danego tematu. W razie potrzeby tworzysz wiadomości dotyczące tematu, a FCM zajmuje się ich kierowaniem i dostarczaniem do odpowiednich urządzeń.
Użytkownicy aplikacji do prognozowania lokalnych pływów mogą np. włączyć temat „alerty o prądach pływowych” i otrzymywać powiadomienia o najlepszych warunkach do połowu ryb w określonych obszarach. Użytkownicy aplikacji sportowej mogą subskrybować automatyczne powiadomienia o wynikach na żywo ulubionych drużyn.
O czym warto pamiętać w przypadku tematów:
Wiadomości dotyczące tematów najlepiej nadają się do treści takich jak prognoza pogody lub inne informacje dostępne publicznie.
Wiadomości dotyczące tematów są optymalizowane pod kątem przepustowości, a nie opóźnienia. Aby zapewnić szybką i bezpieczną dostawę 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ń na jednego użytkownika, rozważ wysyłanie wiadomości na grupę urządzeń w takich przypadkach.
Wiadomości dotyczące tematów obsługują nieograniczoną liczbę subskrypcji każdego tematu. 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żda prośba jest ograniczona do 1000 instancji aplikacji.
- Częstotliwość nowych subskrypcji jest ograniczona do określonej liczby na projekt. Jeśli w krótkim czasie wyślesz zbyt wiele próśb o subskrypcję, serwery FCM odpowiedzą komunikatem
429 RESOURCE_EXHAUSTED
(„limit przekroczony”). Podejmuje ponowne próby ze wzrastającym czasem do ponowienia.
Subskrybowanie tematu przez aplikację kliencką
Aplikacje klienckie mogą subskrybować dowolny istniejący temat lub utworzyć nowy. Gdy aplikacja klienta subskrybuje nową nazwę tematu (której nie ma jeszcze w Twoim projekcie Firebase), w FCM tworzony jest nowy temat o tej nazwie, a każdy klient może go następnie subskrybować.
Aby zasubskrybować temat, wywołaj funkcję subscribeToTopic()
z nazwą tematu. Ta metoda zwraca Future
, który jest dostępny, gdy subskrypcja została pomyślnie utworzona:
await FirebaseMessaging.instance.subscribeToTopic("topic");
Aby anulować subskrypcję, wyślij wiadomość unsubscribeFromTopic()
z nazwą tematu.
Atrybuty subscribeToTopic()
i unsubscribeFromTopic()
nie są obsługiwane w przypadku klientów internetowych. Aby dowiedzieć się, jak zarządzać subskrypcjami użytkowników w internecie, przeczytaj artykuł Wysyłanie wiadomości do tematów dotyczących stron internetowych i JavaScript.
Dalsze kroki
- Dowiedz się, jak wysyłać wiadomości dotyczące tematu.
- Dowiedz się, jak zarządzać subskrypcjami tematów na serwerze.