Beim FCM-Themenmessaging können Sie basierend auf dem Publish/Subscribe-Modell 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.
Nutzer einer lokalen App zur Vorhersage von Gezeiten könnten sich beispielsweise für das Thema „Benachrichtigungen zu Gezeitenströmungen“ anmelden und Benachrichtigungen über optimale Bedingungen für das Salzwasserfischen in bestimmten Gebieten erhalten. Nutzer einer Sport-App könnten automatische Updates zu Live-Spielständen ihrer Lieblingsteams abonnieren.
Wichtige Hinweise zu Themen:
Themenbezogene Nachrichten eignen sich am besten für Inhalte wie Wetter oder andere öffentlich verfügbare Informationen.
Themennachrichten sind für den Durchsatz optimiert, nicht für die Latenz. Für die schnelle und sichere Zustellung an einzelne Geräte oder kleine Gruppen von Geräten sollten Sie Nachrichten auf Registrierungstokens ausrichten und nicht auf Themen.
Wenn Sie Nachrichten an mehrere Geräte pro Nutzer senden müssen, sollten Sie für diese Anwendungsfälle Nachrichten an Gerätegruppen in Betracht ziehen.
Bei Themennachrichten werden unbegrenzte Abos für jedes Thema unterstützt. FCM erzwingt jedoch Limits in den folgenden Bereichen:
- Eine App-Instanz kann maximal 2.000 Themen abonnieren.
- Wenn Sie Batch-Import verwenden, um App-Instanzen zu abonnieren, ist jede Anfrage auf 1.000 App-Instanzen beschränkt.
- Die Häufigkeit neuer Abos ist pro Projekt begrenzt. Wenn Sie innerhalb kurzer Zeit zu viele Aboanfragen senden, antworten die FCM-Server mit einer
429 RESOURCE_EXHAUSTED
-Antwort („Kontingent überschritten“). Wiederholen Sie den Vorgang mit exponentiellem Backoff.
Client-App für ein Thema abonnieren
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.
Rufen Sie subscribeToTopic()
mit dem Namen des Themas auf, um ein Thema zu abonnieren. Diese Methode gibt ein Future
zurück, das aufgelöst wird, wenn das Abo erfolgreich war:
await FirebaseMessaging.instance.subscribeToTopic("topic");
Wenn Sie das Abo beenden 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
- Informationen zum Senden von Themennachrichten
- Informationen zum Verwalten von Themenabos auf dem Server