Wiadomości tematyczne na Flutter

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