Funkcja wiadomości w tematach w FCM oparta na modelu publikowania/subskrypcji umożliwia wysyłanie wiadomości na wielu urządzeniach, które angażują się w określoną tematykę. Tworzysz wiadomości w tematach jako a FCM niezawodnie zarządza routingiem i dostarczaniem wiadomości w prawo urządzenia.
Na przykład użytkownicy przypływów lokalnych aplikacja prognostyczna może włączyć „alerty o prądach pływowych” temat i otrzymaj powiadomienia o optymalnych warunkach połowów na morzu na wybranych obszarach. Użytkownicy aplikacji sportowej mogliby zasubskrybować automatyczne aktualizacje wyników meczów ulubieńców w różnych regionach.
Oto kilka kwestii, o których warto pamiętać:
Komunikaty tematyczne najlepiej sprawdzają się w przypadku treści takich jak pogoda i inne treści publiczne dostępnych informacji.
Tematy wiadomości są zoptymalizowane pod kątem przepustowości, a nie opóźnień. Jeśli chcesz, bezpieczne dostarczanie na pojedyncze urządzenia lub małe grupy urządzeń kierowanie wiadomości na tokeny rejestracji, nie tematów.
Jeśli chcesz wysyłać wiadomości na wiele urządzeń na użytkownika, weź pod uwagę wyświetlanie wiadomości w grupie urządzeń dla tych zastosowań.
Funkcja wiadomości tematycznych obsługuje nieograniczoną liczbę subskrypcji dla każdego tematu. Jednak FCM egzekwuje ograniczenia w tych obszarach:
- Jedno wystąpienie aplikacji może subskrybować maksymalnie 2000 tematów.
- Jeśli używasz importowania zbiorczego aby zasubskrybować instancje aplikacji, każde żądanie jest ograniczone do 1000 wystąpień aplikacji.
- Częstotliwość nowych subskrypcji jest ograniczona w przypadku każdego projektu. Jeśli wyślesz
zbyt wiele żądań subskrypcji w krótkim czasie, serwery FCM
odpowiedzieć, wysyłając odpowiedź
429 RESOURCE_EXHAUSTED
(„limit został przekroczony”). Spróbuj jeszcze raz ze wzrastającym czasem do ponowienia.
Subskrybowanie tematu w aplikacji klienckiej
Aplikacje klienckie mogą subskrybować dowolny istniejący temat lub utworzyć nowy temat. Gdy aplikacja kliencka subskrybuje nową nazwę tematu (taką, która nie jeszcze nie istnieje dla Twojego projektu Firebase), nowy temat o tej nazwie to utworzona w FCM i każdy klient może ją subskrybować.
Aby zasubskrybować temat, wywołaj subscribeToTopic()
i podaj jego nazwę. Ta metoda
zwraca wartość Future
, która obowiązuje, gdy subskrypcja się powiodła:
await FirebaseMessaging.instance.subscribeToTopic("topic");
Aby anulować subskrypcję, wywołaj unsubscribeFromTopic()
i podaj nazwę tematu.
subscribeToTopic()
i unsubscribeFromTopic()
nie są obsługiwane w przeglądarce
klientów. Aby dowiedzieć się, jak zarządzać subskrypcjami dla użytkowników internetu, zobacz
Wysyłanie wiadomości do tematów przy użyciu przeglądarki/JavaScript.
Dalsze kroki
- Dowiedz się, jak wysyłać wiadomości tematyczne.
- Dowiedz się, jak zarządzać subskrypcjami tematów na serwerze.