Funkcja wiadomości na temat tematów w FCM, wykorzystująca model publikowania/subskrypcji, umożliwia wysyłanie wiadomości na wiele urządzeń, które wyraziły zgodę na dany temat. Wiadomości tworzysz w razie potrzeby, a FCM zarządza routingiem i dostarczaniem wiadomości na odpowiednie urządzenia w niezawodny sposób.
Na przykład użytkownicy aplikacji prognostycznej dotyczącej pływów mogą włączyć temat „alerty o prądach pływowych” i otrzymywać powiadomienia o optymalnych warunkach połowów na morzu na określonych obszarach. Użytkownicy aplikacji sportowej mogą zasubskrybować automatyczne aktualizacje wyników meczów ulubionych drużyn na żywo.
Oto kilka kwestii, o których warto pamiętać:
Komunikaty tematyczne najlepiej sprawdzają się w przypadku takich treści jak pogoda czy inne publicznie dostępne informacje.
Tematy wiadomości są zoptymalizowane pod kątem przepustowości, a nie opóźnień. Aby szybko i bezpiecznie dostarczać wiadomości na pojedyncze urządzenia lub do 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 użytkownika, w tych przypadkach rozważ zastosowanie wysyłania wiadomości do grup urządzeń.
Funkcja wiadomości tematycznych obsługuje nieograniczoną liczbę subskrypcji dla każdego tematu. FCM egzekwuje jednak limity w tych obszarach:
- Jedno wystąpienie aplikacji może subskrybować maksymalnie 2000 tematów.
- Jeśli do subskrybowania instancji aplikacji używasz importowania 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 otrzymają odpowiedź
429 RESOURCE_EXHAUSTED
(„przekroczenie limitu”). Podejmuje ponowne próby ze wzrastającym czasem do ponowienia.
Subskrybowanie tematu w aplikacji klienckiej
Aplikacje klienckie mogą subskrybować dowolny istniejący temat lub utworzyć nowy. Gdy aplikacja kliencka subskrybuje nową nazwę tematu (takiego, którego jeszcze nie ma w projekcie Firebase), w FCM jest tworzony nowy temat o tej nazwie, a każdy klient może go zasubskrybować.
Aby zasubskrybować temat, wywołaj subscribeToTopic()
i podaj jego nazwę. Ta metoda zwraca błąd Future
, który zostaje rozwiązany, gdy subskrypcja się powiodła:
await FirebaseMessaging.instance.subscribeToTopic("topic");
Aby anulować subskrypcję, wywołaj unsubscribeFromTopic()
i podaj nazwę tematu.
Klienty internetowe nie obsługują subscribeToTopic()
i unsubscribeFromTopic()
. Aby dowiedzieć się, jak zarządzać subskrypcjami użytkowników internetu, przeczytaj artykuł Wysyłanie wiadomości do tematów w przeglądarce internetowej/JavaScript.
Dalsze kroki
- Dowiedz się, jak wysyłać wiadomości tematyczne.
- Dowiedz się, jak zarządzać subskrypcjami tematów na serwerze.