Basierend auf dem Publish/Subscribe-Modell können Sie mit FCM Topic Messaging eine Nachricht an mehrere Geräte senden, die sich für ein bestimmtes Thema entschieden haben. Sie verfassen Themennachrichten nach Bedarf und FCM übernimmt die Weiterleitung und zuverlässige Zustellung der Nachricht an die richtigen Geräte.
Benutzer einer lokalen Gezeitenvorhersage-App könnten sich beispielsweise für das Thema „Gezeitenwarnungen“ entscheiden und Benachrichtigungen über optimale Salzwasserfischereibedingungen in bestimmten Gebieten erhalten. Nutzer einer Sport-App könnten automatische Aktualisierungen der Live-Spielergebnisse ihrer Lieblingsmannschaften abonnieren.
Einige Dinge, die Sie bei Themen beachten sollten:
Themennachrichten eignen sich am besten für Inhalte wie das Wetter oder andere öffentlich verfügbare Informationen.
Themennachrichten sind für den Durchsatz und nicht für die Latenz optimiert . Für eine schnelle und sichere Zustellung an einzelne Geräte oder kleine Gerätegruppen richten Sie Nachrichten gezielt an Registrierungs-Tokens und nicht an Themen.
Wenn Sie Nachrichten an mehrere Geräte pro Benutzer senden müssen, sollten Sie für diese Anwendungsfälle Gerätegruppen-Messaging in Betracht ziehen.
Themennachrichten unterstützen unbegrenzte Abonnements für jedes Thema. FCM erzwingt jedoch Beschränkungen in diesen Bereichen:
- Eine App-Instanz kann maximal 2000 Themen abonnieren.
- Wenn Sie den Batch-Import zum Abonnieren von App-Instanzen verwenden, ist jede Anfrage auf 1000 App-Instanzen beschränkt.
- Die Häufigkeit neuer Abonnements ist pro Projekt ratenbegrenzt. Wenn Sie in kurzer Zeit zu viele Abonnementanfragen senden, antworten die FCM-Server mit der Antwort
429 RESOURCE_EXHAUSTED
(„Kontingent überschritten“). Versuchen Sie es erneut mit exponentiellem Backoff.
Abonnieren Sie die Client-App für ein Thema
Client-Apps können jedes vorhandene Thema abonnieren oder ein neues Thema erstellen. Wenn eine Client-App einen neuen Themennamen abonniert (einen, der für Ihr Firebase-Projekt noch nicht vorhanden ist), wird in FCM ein neues Thema mit diesem Namen erstellt und jeder Client kann es anschließend abonnieren.
Um ein Thema zu abonnieren, rufen Sie subscribeToTopic()
mit dem Themennamen auf. Diese Methode gibt einen Future
zurück, der aufgelöst wird, wenn das Abonnement erfolgreich war:
await FirebaseMessaging.instance.subscribeToTopic("topic");
Um sich abzumelden, rufen Sie unsubscribeFromTopic()
mit dem Themennamen auf.
subscribeToTopic()
und unsubscribeFromTopic()
werden für Web-Clients nicht unterstützt. Informationen zum Verwalten von Abonnements für Webbenutzer finden Sie unter Senden von Nachrichten an Themen im Web/JavaScript .
Nächste Schritte
- Erfahren Sie, wie Sie Themennachrichten senden .
- Erfahren Sie, wie Sie Themenabonnements auf dem Server verwalten .