Na podstawie modelu publikowania i subskrybowania wiadomości inicjowane przez temat FCM umożliwiają wysyłanie wiadomości do wielu urządzeń, które subskrybują dany temat. W razie potrzeby tworzysz wiadomości dotyczące tematu, a usługa FCM zajmuje się ich kierowaniem i bezpiecznym dostarczaniem na odpowiednie urządzenia.
Użytkownicy aplikacji do prognozowania lokalnych pływów mogą np. wyrazić zgodę na otrzymywanie alertów o prądach przybrzeżnych i otrzymywać powiadomienia o optymalnych 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 tematu 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ę do pojedynczych urządzeń lub małych grup urządzeń, wyceluj wiadomości do tokenów rejestracji, a nie do tematów.
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 przypadku tych zastosowań.
Wiadomości dotyczące tematów obsługują nieograniczoną liczbę subskrypcji dla każdego tematu. FCM stosuje 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ę klienta
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 się powiedzie:
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.