Themennachrichten in Flutter

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 für Gezeitenvorhersagen können beispielsweise das Thema „Gezeitenströme – Benachrichtigungen“ 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 für den Durchsatz und nicht für die Latenz optimiert. Für eine schnelle und sichere Zustellung an einzelne Geräte oder kleine Gruppen von Geräten richten Sie Nachrichten auf Registrierungstokens und nicht auf Themen aus.

  • Wenn Sie Nachrichten pro Nutzer an mehrere Geräte senden möchten, sollten Sie für diese Anwendungsfälle Gerätegruppennachrichten verwenden.

  • Bei Themennachrichten sind unbegrenzte Abos für jedes Thema möglich. FCM erzwingt jedoch Limits in den folgenden Bereichen:

    • Eine App-Instanz kann maximal 2.000 Themen abonnieren.
    • Wenn Sie den Batchimport 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 FCM-Server mit 429 RESOURCE_EXHAUSTED („Quota exceeded“). Wiederholen Sie den Vorgang mit exponentiellem Backoff.

Clientanwendung 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, der für Ihr Firebase-Projekt noch nicht vorhanden ist, wird in FCM ein neues Thema mit diesem Namen erstellt. Anschließend kann es von jedem Client abonniert werden.

Wenn Sie ein Thema abonnieren möchten, rufen Sie subscribeToTopic() mit dem Namen des Themas auf. Diese Methode gibt eine Future zurück, die sich auflöst, wenn das Abo erfolgreich war:

await FirebaseMessaging.instance.subscribeToTopic("topic");

Wenn Sie den Empfang von Benachrichtigungen für ein Thema 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