Basierend auf dem Publish/Subscribe-Modell können Sie mit FCM-Themennachrichten eine Nachricht an mehrere Geräte senden, die sich für ein bestimmtes Thema angemeldet haben. Sie verfassen Themennachrichten nach Bedarf, und FCM kümmert sich um das Routing und die zuverlässige Zustellung der Nachricht an die richtigen Geräte.
Benutzer einer App für lokale Gezeitenvorhersagen könnten sich beispielsweise für das Thema „Gezeitenströmungswarnungen“ anmelden und Benachrichtigungen über optimale Salzwasserfischereibedingungen in bestimmten Gebieten erhalten. Benutzer einer Sport-App könnten automatische Updates in Live-Spielergebnissen für ihre Lieblingsteams abonnieren.
Einige Dinge, die Sie bei Themen beachten sollten:
Themennachrichten eignen sich am besten für Inhalte wie Wetter oder andere öffentlich verfügbare Informationen.
Themennachrichten sind eher auf Durchsatz als auf Latenz optimiert . Für eine schnelle und sichere Zustellung an einzelne Geräte oder kleine Gruppen von Geräten zielen Sie Nachrichten auf Registrierungstoken ab , nicht auf Themen.
Wenn Sie Nachrichten an mehrere Geräte pro Benutzer senden müssen, ziehen Sie für diese Anwendungsfälle Gerätegruppennachrichten in Betracht.
Themen-Messaging unterstützt unbegrenzte Abonnements für jedes Thema. FCM erzwingt jedoch Grenzen in diesen Bereichen:
- Eine App-Instanz kann nicht mehr als 2000 Themen abonnieren.
- Wenn Sie App-Instanzen per Batch-Import abonnieren, ist jede Anfrage auf 1000 App-Instanzen beschränkt.
- Die Häufigkeit neuer Abonnements ist pro Projekt preisbegrenzt. Wenn Sie in kurzer Zeit zu viele Abonnementanfragen senden, antworten die FCM-Server mit der Antwort
429 RESOURCE_EXHAUSTED
(„Kontingent überschritten“). Wiederholen Sie den Vorgang 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 (der für Ihr Firebase-Projekt noch nicht existiert), wird in FCM ein neues Thema mit diesem Namen erstellt, und jeder Client kann es anschließend abonnieren.
Um ein Thema zu abonnieren, rufen subscribeToTopic()
mit dem Themennamen auf. Diese Methode gibt ein Future
zurück, das aufgelöst wird, wenn das Abonnement erfolgreich war:
await FirebaseMessaging.instance.subscribeToTopic("topic");
Rufen Sie zum Abbestellen unsubscribeFromTopic()
mit dem Themennamen auf.
Nächste Schritte
- Erfahren Sie, wie Sie Themennachrichten senden .
- Erfahren Sie, wie Sie Themenabonnements auf dem Server verwalten .
- Erfahren Sie mehr über die andere Möglichkeit, an mehrere Geräte zu senden – Gerätegruppen-Messaging .