W oparciu o model publikowania/subskrybowania wiadomości tematyczne FCM umożliwiają wysyłanie wiadomości do wielu urządzeń, które wyraziły zgodę na określony temat. Tworzysz wiadomości tematyczne według potrzeb, a FCM niezawodnie obsługuje routing i dostarczanie wiadomości do odpowiednich urządzeń.
Na przykład użytkownicy aplikacji do prognozowania lokalnych pływów mogą włączyć opcję „alarmy o prądach pływowych” i otrzymywać powiadomienia o optymalnych warunkach połowów morskich na określonych obszarach. Użytkownicy aplikacji sportowej mogą subskrybować automatyczne aktualizacje wyników meczów swoich ulubionych drużyn na żywo.
Kilka rzeczy, o których warto pamiętać w tematach:
Wiadomości tematyczne najlepiej nadają się do przesyłania treści takich jak pogoda lub inne publicznie dostępne informacje.
Wiadomości tematyczne są zoptymalizowane pod kątem przepustowości, a nie opóźnień . Aby szybko i bezpiecznie dostarczać wiadomości do pojedynczych urządzeń lub małych grup urządzeń, kieruj wiadomości do tokenów rejestracji , a nie do tematów.
Jeśli chcesz wysyłać wiadomości do wielu urządzeń na jednego użytkownika , rozważ przesyłanie wiadomości grupowych urządzeń w tych przypadkach.
Wiadomości tematyczne obsługują nieograniczoną liczbę subskrypcji dla każdego tematu. Jednakże FCM egzekwuje ograniczenia w następujących obszarach:
- W jednej instancji aplikacji można subskrybować maksymalnie 2000 tematów.
- Jeśli używasz importu zbiorczego do subskrybowania instancji aplikacji, każde żądanie jest ograniczone do 1000 instancji aplikacji.
- Częstotliwość nowych subskrypcji jest ograniczona stawką dla każdego projektu. Jeśli w krótkim czasie wyślesz zbyt wiele żądań subskrypcji, serwery FCM odpowiedzą odpowiedzią
429 RESOURCE_EXHAUSTED
(„przekroczono limit”). Spróbuj ponownie z wykładniczym wycofaniem.
Subskrybuj aplikację kliencką do tematu
Aplikacje klienckie mogą subskrybować dowolny istniejący temat lub utworzyć nowy temat. Kiedy aplikacja kliencka subskrybuje nową nazwę tematu (taką, która jeszcze nie istnieje w Twoim projekcie Firebase), w FCM tworzony jest nowy temat o tej nazwie i każdy klient może go następnie zasubskrybować.
Aby zasubskrybować temat, wywołaj funkcję subscribeToTopic()
z nazwą tematu. Ta metoda zwraca Future
, który zostaje rozwiązany po pomyślnym zakończeniu subskrypcji:
await FirebaseMessaging.instance.subscribeToTopic("topic");
Aby zrezygnować z subskrypcji, wywołaj unsubscribeFromTopic()
z nazwą tematu.
subscribeToTopic()
i unsubscribeFromTopic()
nie są obsługiwane w klientach internetowych. Aby dowiedzieć się, jak zarządzać subskrypcjami dla użytkowników Internetu, zobacz Wysyłanie wiadomości do tematów w Internecie/JavaScript .
Następne kroki
- Dowiedz się, jak wysyłać wiadomości tematyczne .
- Dowiedz się jak zarządzać subskrypcjami tematów na serwerze .