Wiadomości tematyczne w ramach technologii Flutter

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