Basierend auf dem Publish/Subscribe-Modell können Sie mit FCM-Themennachrichten eine Nachricht an mehrere Geräte senden, die für ein bestimmtes Thema angemeldet sind. Sie verfassen nach Bedarf Nachrichten für Themen und FCM kümmert sich um das Weiterleiten und Zustellen der Nachricht an die richtigen Geräte.
Nutzer einer App zur Vorhersage der Gezeiten können beispielsweise das Thema „Gezeitenströme – Warnungen“ aktivieren und sich über optimale Bedingungen für das Salzwasserangeln in bestimmten Gebieten informieren lassen. Nutzer einer Sport-App könnten automatische Updates zu den Live-Spielständen ihrer Lieblingsteams abonnieren.
Beachten Sie bei Themen Folgendes:
Themenbezogene Nachrichten eignen sich am besten für Inhalte wie das Wetter oder andere öffentlich verfügbare Informationen.
Themennachrichten sind im Hinblick auf den Durchsatz und nicht für die Latenz optimiert. Wenn Sie Nachrichten schnell und sicher an einzelne Geräte oder kleine Gruppen von Geräten senden möchten, richten Sie sie auf Registrierungstokens und nicht auf Themen aus.
Wenn Sie Nachrichten pro Nutzer an mehrere Geräte senden müssen, sollten Sie für diese Anwendungsfälle Gerätegruppennachrichten verwenden.
Beim themenbezogenen Messaging werden für jedes Thema unbegrenzt viele Abos unterstützt. FCM erzwingt jedoch Limits in folgenden Bereichen:
- Eine App-Instanz kann maximal 2.000 Themen abonnieren.
- Wenn Sie Anwendungsinstanzen per Batchimport abonnieren, ist jede Anfrage auf 1.000 Anwendungsinstanzen beschränkt.
- Die Häufigkeit neuer Abos ist pro Projekt begrenzt. Wenn Sie innerhalb kurzer Zeit zu viele Aboanfragen senden, antworten FCM-Server mit der Antwort
429 RESOURCE_EXHAUSTED
(„Kontingent überschritten“). Wiederholen Sie den Vorgang mit exponentiellem Backoff.
Client-App für ein Thema abonnieren
Clientanwendungen können jedes vorhandene Thema abonnieren oder ein neues Thema erstellen. Wenn eine Client-App ein neues Thema abonniert (das in Ihrem Firebase-Projekt noch nicht vorhanden ist), wird in FCM ein neues Thema mit diesem Namen erstellt und jeder Client kann es anschließend abonnieren.
Wenn Sie ein Thema abonnieren möchten, rufen Sie subscribeToTopic()
mit dem Namen des Themas auf. Diese Methode gibt ein Future
zurück, das aufgelöst wird, wenn das Abo erfolgreich war:
await FirebaseMessaging.instance.subscribeToTopic("topic");
Wenn Sie keine Nachrichten mehr erhalten möchten, rufen Sie unsubscribeFromTopic()
mit dem Namen des Themas auf.
subscribeToTopic()
und unsubscribeFromTopic()
werden für Webclients nicht unterstützt. Informationen zum Verwalten von Abos für Webnutzer finden Sie unter Nachrichten an Themen im Web/JavaScript senden.
Nächste Schritte
- Weitere Informationen zum Senden von Themennachrichten
- Weitere Informationen zum Verwalten von Themenabos auf dem Server