Auf dieser Seite finden Sie Hilfe zur Fehlerbehebung und Antworten auf häufig gestellte Fragen zu Cloud Messaging.
Was ist der Unterschied zwischen dem Notifications Composer und FCM?
Firebase Cloud Messaging bietet über seine Client-SDKs und das HTTP-Serverprotokoll eine vollständige Palette von Messaging-Funktionen. Für Bereitstellungen mit komplexeren Messaging-Anforderungen ist FCM die richtige Wahl.
Der Notifications Composer ist eine einfache, serverlose Messaging-Lösung, die auf Firebase Cloud Messaging basiert. Mit einer nutzerfreundlichen grafischen Konsole und weniger Programmieraufwand können Nutzer mit dem Notifications Composer Nachrichten senden, um Nutzer wieder anzusprechen und zu binden, das App-Wachstum zu fördern und Marketingkampagnen zu unterstützen.
| Funktionen | Notifications Composer | Cloud Messaging | |
|---|---|---|---|
| Ziel | Einzelnes Gerät | ||
| Clients, die Themen abonniert haben (z. B. Wetter) | |||
| Clients in vordefiniertem Nutzersegment (App, Version, Sprache) | |||
| Clients in bestimmten Analytics-Zielgruppen | |||
| Clients in Gerätegruppen | |||
| Upstream vom Client zum Server | |||
| Nachrichtentyp | Benachrichtigungen bis zu 2 KB | ||
| Datennachrichten bis zu 4 KB | |||
| Auslieferung | Sofort | ||
| Zukünftige Ortszeit des Clientgeräts | |||
| Analytics | Integrierte Sammlung von Benachrichtigungsanalysen und Trichteranalysen |
Muss ich andere Firebase-Dienste verwenden, um FCM zu nutzen?
Sie können Firebase Cloud Messaging als eigenständige Komponente verwenden, ohne andere Firebase-Dienste zu nutzen.
Warum erhalten meine Zielgeräte anscheinend keine Nachrichten?
Wenn es so aussieht, als ob Geräte keine Nachrichten erhalten haben, prüfen Sie zuerst diese beiden möglichen Ursachen:
Verarbeitung von Benachrichtigungen im Vordergrund Client-Apps müssen eine Logik zur Nachrichtenverarbeitung hinzufügen, um Benachrichtigungen zu verarbeiten, wenn die App auf dem Gerät im Vordergrund ausgeführt wird. Weitere Informationen finden Sie unter iOS und Android.
Einschränkungen durch die Firewall des Netzwerks Wenn Ihre Organisation eine Firewall hat, die den Traffic zum oder vom Internet einschränkt, müssen Sie sie so konfigurieren, dass eine Verbindung mit FCM möglich ist, damit Ihre Firebase Cloud Messaging-Client-Apps Nachrichten empfangen können. Die folgenden Ports müssen geöffnet werden:
- 5228
- 5229
- 5230
FCM verwendet normalerweise 5228, manchmal aber auch 5229 und 5230. FCM stellt keine bestimmten IP-Adressen bereit. Sie sollten daher Ihre Firewall so konfigurieren, dass ausgehende Verbindungen zu allen IP-Adressen akzeptiert werden, die in den IP-Blöcken unter AS15169 Google LLC aufgeführt sind.
Warum wird onMessageReceived in meiner Android-App nicht aufgerufen?
Wenn sich Ihre App im Hintergrund befindet, werden Benachrichtigungen in der Taskleiste angezeigt und onMessageReceived wird nicht aufgerufen. Bei Benachrichtigungen mit einer Datennutzlast wird die Benachrichtigung in der Taskleiste angezeigt. Die in der Benachrichtigung enthaltenen Daten können aus dem Intent abgerufen werden, der gestartet wird, wenn der Nutzer auf die Benachrichtigung tippt.
Weitere Informationen finden Sie unter Nachrichten empfangen und verarbeiten.
Warum erhalte ich einen 404-Fehler, wenn ich Nachrichten an eine aktive App-Instanz sende, die aus einer Sicherung wiederhergestellt wurde?
Die FID (Firebase-Installations-ID) ist die Kennung einer App-Instanz. Standardmäßig werden Firebase-Installationsdaten gesichert und wiederhergestellt. Bei der Wiederherstellung haben die wiederhergestellte App-Instanz und die ursprüngliche App-Instanz also dieselbe FID. Da FCM nur ein Token pro FID speichert, wird bei der Registrierung einer App-Instanz bei FCM das Token der anderen App-Instanz entfernt, wenn sowohl die ursprüngliche als auch die wiederhergestellte App-Instanz verwendet werden. Dies führt zu 404-Fehlern.
Wir empfehlen Entwicklern, in ihrer App Folgendes zu tun:
- Schließen Sie Firebase-Installationsdaten in der Sicherung aus. Die Firebase-Installationsdaten werden in einer
PersistedInstallation....json-Datei gespeichert. Der Dateiname ist eine Konstante für eine App, z. B.<exclude domain="file" path="PersistedInstallation.W0R...GQ.json" />.
Apple hat angekündigt, dass das alte binäre Protokoll für APNs eingestellt wird. Muss ich etwas tun?
Nein. Firebase Cloud Messaging ist 2017 auf das HTTP/2-basierte APNs-Protokoll umgestiegen. Wenn Sie FCM verwenden, um Benachrichtigungen an iOS-Geräte zu senden, müssen Sie nichts weiter tun.
FCM-Kontingente und -Limits
Wie benachrichtige ich einen großen Kundenstamm innerhalb von 2 Minuten?
Dieser Anwendungsfall wird nicht unterstützt. Sie müssen den Traffic über 5 Minuten verteilen.
Meine App benachrichtigt Nutzer über Ereignisse. Diese Nachrichten müssen sofort zugestellt werden, um mein Geschäftsmodell zu unterstützen. Kann ich mehr Kontingent erhalten?
Aus diesem Grund können wir leider keine Kontingenterhöhungen gewähren. Sie müssen den Traffic über 5 Minuten verteilen, um Traffic-Spitzen zu vermeiden.
Meine Nachrichten beziehen sich auf geplante Ereignisse. Wie kann ich den gesamten Traffic zu Beginn der Stunde senden?
Wir empfehlen, die Benachrichtigungen mindestens 5 Minuten vor dem Ereignis zu senden. Alternativ können Sie Datennachrichten senden und das Analogon des onMessageReceived-Handlers Ihrer Plattform implementieren, um lokale Benachrichtigungen im Voraus zu planen.
Wie kann ich meine Kontingentnutzung im Blick behalten?
In der Google Cloud-Anleitung erfahren Sie, wie Sie Kontingentmesswerte grafisch darstellen und überwachen.
429-Fehler sind für mich und mein Unternehmen schwer zu handhaben. Kann ich eine Ausnahme oder ein höheres Kontingent erhalten, um 429-Fehler zu vermeiden?
Wir wissen, dass Kontingentlimits eine Herausforderung sein können. Kontingente sind jedoch wichtig, um die Zuverlässigkeit des Dienstes aufrechtzuerhalten. Ausnahmen können wir nicht gewähren. Verwenden Sie Wiederholungsversuche, um 429-Fehler ordnungsgemäß zu beheben.
Wie lange dauert es, bis meine Anfrage zur Kontingenterhöhung bearbeitet wird?
Ihre Anfrage zur Kontingenterhöhung hängt von Ihrer Nutzung von FCM ab. In jedem Fall erhalten Sie innerhalb weniger Arbeitstage eine Antwort. In einigen Fällen kann es zu Rückfragen zu Ihrer Nutzung von FCM und verschiedenen Umständen kommen, was den Prozess verlängern kann. Wenn alle Anforderungen erfüllt sind, werden die meisten Anfragen innerhalb von zwei Wochen bearbeitet.
Kann ich für ein temporäres Ereignis mehr Kontingent erhalten?
Sie können ein zusätzliches Kontingent für ein Ereignis anfordern, das bis zu einen Monat dauert. Reichen Sie die Anfrage mindestens einen Monat vor der Veranstaltung ein und geben Sie genaue Details zum Beginn und Ende der Veranstaltung an. FCM wird sich nach Kräften bemühen, die Anfrage zu erfüllen. Wenn diese Kontingenterhöhungen gewährt werden, werden sie nach dem Enddatum des Ereignisses rückgängig gemacht.
Kann sich mein aktuelles Kontingent ändern?
Google wird dies zwar nicht leichtfertig tun, aber Kontingente können bei Bedarf geändert werden, um die Integrität des Systems zu schützen. Wenn möglich, werden Sie von Google im Voraus über solche Änderungen informiert. Halten Sie Ihre Cloud-MSA-Kontakte auf dem neuesten Stand, um die Wahrscheinlichkeit zu erhöhen, dass Sie Servicemitteilungen erhalten.
Einstellung von FCM-Legacy-APIs
Serverseitige APIs werden im September 2026 eingestellt
Welche APIs und Funktionen werden eingestellt und außer Betrieb genommen? Was muss ich tun, wenn ich diese APIs verwende?
Alle InstanceId-Server-APIs und die Gerätegruppenfunktion werden eingestellt und am 29. September 2027 außer Betrieb genommen. In der folgenden Tabelle finden Sie weitere Informationen zu den verworfenen APIs/Funktionen und den erforderlichen Maßnahmen.
| API-Name | API-Endpunkt | Verwendungszweck | Auswirkungen für Kundenunternehmen | Wichtige Informationen |
|---|---|---|---|---|
| InstanceId Info API | https://iid.googleapis.com/iid/info | Informationen zu einer InstanceId / einem FCM-Token abrufen | Anfragen an diese API schlagen nach dem 29. September 2027 fehl. | Wenn Sie die API für die Tokenvalidierung verwenden, nutzen Sie die FCM V1 Send API und setzen Sie validate_only auf „true“.
Kunden, die die API zum Abrufen von Informationen zu Themenabos verwenden, müssen zur neuen API für Themenabos migrieren. |
| InstanceId-Themenabo-API | https://iid.googleapis.com/iid/v1/…/rel/topics https://iid.googleapis.com/iid/v1:batchAdd https://iid.googleapis.com/iid/v1:batchRemove |
Token über die Legacy-API für Themenabos für ein Thema abonnieren. | Anfragen an diese API schlagen nach dem 29. September 2027 fehl. | Migrieren Sie zur neuen FCM-Themenabo-Server-API für das Abonnieren und Abbestellen von Themen. |
| InstanceId Batch Import API | https://iid.googleapis.com/iid/v1:batchImport | FCM-Tokens für iOS im Batch auf der Serverseite erstellen. | Anfragen an diese API schlagen nach dem 29. September 2027 fehl.
Das Erstellen von FCM-Registrierungen aus APNs-Tokens auf der Serverseite wird nicht unterstützt. |
Sie können den APNs-Dienst von Apple verwenden, um Benachrichtigungen mit APNs-Tokens zu senden.
Wenn Sie die zusätzlichen Vorteile von FCM nutzen möchten, binden Sie das FCM iOS SDK in Ihre App ein. Dadurch werden FCM-Registrierungen auf dem Client erstellt. |
| API zur Verwaltung von Gerätegruppen | https://fcm.googleapis.com/fcm/notification https://fcm.googleapis.com/gcm/notification https://fcm.googleapis.com/iid/notification https://fcm.googleapis.com/notification |
Mitglieder einer Gerätegruppe hinzufügen, entfernen oder abrufen. | Anfragen an diese API schlagen nach dem 29. September 2027 fehl. | Hier finden Sie eine Anleitung zur Migration von der Funktion.
Nachrichten können weiterhin an einzelne FCM-Registrierungen statt an Gruppentokens gesendet werden. |
| An Gerätegruppe senden | https://fcm.googleapis.com/v1/projects/…/messages:send | Senden von Nachrichten an Gerätegruppen mithilfe des notification_key der Gruppe. | Diese API funktioniert weiterhin, unterstützt aber nach dem 29. September 2027 keine Gerätegruppentokens mehr. |
Wenn ich das Firebase Admin SDK zur Verwaltung von Themenabos verwende, bin ich dann von der Einstellung betroffen? Was soll ich tun?
Wenn Sie frühere Versionen des Firebase Admin SDK zum Verwalten von Themenabos verwenden, sind Sie von der Einstellung betroffen. Sie müssen Ihr Firebase Admin SDK auf die folgenden Versionen aktualisieren:
| Plattform | Betroffene Admin SDK-Version | Admin SDK-Version, auf die ein Upgrade durchgeführt werden soll |
|---|---|---|
| Node.js | <=14.4.0 | >=14.5.0 |
| Python | <=7.6.0 | >=7.7.0 |
| Java | <=9.10.0 | >=9.11.0 |
| Go | <=4.21.0 | >=4.22.0 |
| .NET | <=3.6.0 | >=3.7.0 |
Wird der Dienst vor dem 29. September 2027 herabgestuft?
Nein. Sie haben 12 Monate Zeit, um von den eingestellten APIs zu Alternativen zu migrieren, ohne dass es zu einer Dienstverschlechterung kommt. Wir empfehlen Ihnen dringend, die Migration so früh wie möglich zu planen, damit Sie nicht von der Einstellung betroffen sind.
Wenn Sie nach dem 29. September 2027 eingestellte APIs aufrufen, werden voraussichtlich Fehler auftreten.
Können neue Nutzer die eingestellten APIs/Funktionen vor der Außerbetriebnahme verwenden?
Neue Nutzer können die eingestellten APIs/Funktionen vor dem 1. Januar 2027 einrichten. Nach dem 1. Januar 2027 können neue Nutzer die verworfenen APIs nicht mehr verwenden. Nutzer, die die verworfenen APIs verwenden, können dies noch bis zum 29. September 2027 tun.
AndroidConfigV2 – Häufig gestellte Fragen
Wie lange wird die alte AndroidConfig API (v1) noch unterstützt?
FCM plant, v1-AndroidConfig-Nutzlasten nach der allgemeinen Verfügbarkeit (GA) von AndroidConfigV2 noch mehrere Jahre lang zu unterstützen. Die Migration wird sich über mehrere Jahre erstrecken, aber AndroidConfigV2 bietet eine zuverlässigere Zustellung von Benachrichtigungen. Wir empfehlen daher, die Migration so bald wie möglich durchzuführen.
Welche Android-Betriebssystemversionen werden von AndroidConfigV2 unterstützt?
AndroidConfigV2 wird auf allen von Google unterstützten Android-Versionen unterstützt. Alle Geräte, die nicht älter als 10 Jahre sind, werden unterstützt, wenn die alte v1 API eingestellt wird.
Werden mit AndroidConfigV2 Nutzlasten an Geräte gesendet, die nur die ältere v1-Schnittstelle unterstützen, und in welcher Reihenfolge sollte ich Änderungen einführen?
Ja. Wenn Sie eine AndroidConfigV2-Anfrage senden, übersetzen FCM und GMS Core die Nutzlast automatisch für Geräte mit älteren Client-SDKs oder für Apps, die onNotificationReceived() oder onBackgroundSyncReceived() noch nicht überschrieben haben, und stellen sie über onMessageReceived() bereit.
Warum müssen Benachrichtigungen bei AndroidConfigV2 über das FCM SDK zurückgegeben werden, anstatt NotificationManager.notify() direkt aufzurufen?
Durch die Rückgabe eines NotificationResponse an das Open-Source-FCM-SDK oder durch die Verwendung von FcmNotificationManager:
- Ihre App erhält ein geschütztes Ausführungsfenster, um die Benachrichtigung zu entschlüsseln oder anzupassen.
- Wenn die Zeit für Ihre App abläuft, sorgt GMS Core für eine rechtzeitige Zustellung, indem die von Ihnen in
remote_notification.notificationkonfigurierte Sicherungsbenachrichtigung gepostet wird.
Werden Benachrichtigungen von AndroidConfigV2 unterschiedlich verarbeitet, wenn meine App im Vordergrund oder im Hintergrund ausgeführt wird?
Nein. Im Gegensatz zu alten v1-Benachrichtigungen wird bei AndroidConfigV2 das Nachrichtenrouting nicht danach aufgeteilt, ob sich Ihre App im Vorder- oder Hintergrund befindet.
Wenn Sie eine RemoteNotification senden, wird die Benachrichtigung in beiden Status automatisch angezeigt, es sei denn, Sie legen mutable_content: true fest und schalten sie in onNotificationReceived() mit NotificationResponse.createEmpty() explizit stumm.
Wie viel Zeit hat meine App, um eine veränderliche RemoteNotification zu verarbeiten?
Wenn mutable_content: true für eine RemoteNotification festgelegt ist, hat Ihre App in onNotificationReceived() bis zu 20 Sekunden Zeit, um Nutzlasten zu entschlüsseln, kleine Assets (z. B. Avatare) abzurufen oder Ihren App-Server zu kontaktieren, bevor eine NotificationResponse zurückgegeben wird. Wenn der Callback länger als 20 Sekunden dauert, wird die Ausführung abgebrochen und GMS Core postet automatisch eine Fallback-Benachrichtigung basierend auf der remote_notification.notification-Nutzlast.
Wie funktioniert die Erzwingung der Unterdrückung von Benachrichtigungen für veränderliche RemoteNotifications?
Apps können einen RemoteNotification unterdrücken, indem sie NotificationResponse.suppress() von onNotificationReceived() zurückgeben. Beispielsweise, wenn ein Chat stummgeschaltet ist, ein Absender blockiert ist oder eine Ende-zu-Ende-verschlüsselte Nutzlast die Validierung nicht besteht.
- Im Hintergrund: Ihre App kann bis zu 25% der empfangenen
RemoteNotification-Nachrichten über ein rollierendes Zeitfenster unterdrücken. Wenn die Rate der im Hintergrund unterdrückten Benachrichtigungen Ihrer App 25 % überschreitet, rendert und postet GMS Core automatisch die Fallback-Benachrichtigung aus derremote_notification.notification-Nutzlast. - Im Vordergrund: Du kannst alle Remote-Benachrichtigungen unterdrücken, während die App im Vordergrund aktiv ist. Beispielsweise können Sie einen In-App-Toast anzeigen oder einen geöffneten Chatbildschirm aktualisieren, anstatt eine Systembenachrichtigung zu posten.
Kann meine App mehrere Benachrichtigungen posten oder eine vorhandene Benachrichtigung über eine einzelne RemoteNotification abbrechen?
Ja. Verwenden Sie Folgendes, um mehrere Benachrichtigungen abzubrechen oder zu posten:
- Einzelne Benachrichtigung abbrechen: Gib
NotificationResponse.createCancel(tag, id)vononNotificationReceived()zurück, um eine zuvor gepostete Benachrichtigung zu schließen. - Mehrere Benachrichtigungen posten oder Abbrüche und Posts kombinieren: Rufe
getFcmNotificationManager(message)innerhalb vononNotificationReceived()auf, umpostNow(tag, id, notification)undcancelNow(tag, id)mehrmals aufzurufen, und gibmanager.finished()zurück, wenn der Vorgang abgeschlossen ist.
Können benutzerdefinierte RemoteViews mit AndroidConfigV2 verwendet werden?
Ja, benutzerdefinierte RemoteViews funktionieren mit AndroidConfigV2.
onNotificationReceived() gibt ein Standard-Android-Notification-Objekt zurück. Alle Standard-Android-Benachrichtigungs-APIs wie setCustomContentView() werden weiterhin unterstützt. Beachten Sie, dass sich RemoteViews und Views im Wartungsmodus befinden und eine Migration zu Compose empfohlen wird.