Hier ist mein Manifest
<service android:name=".fcm.PshycoFirebaseMessagingServices">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
<service android:name=".fcm.PshycoFirebaseInstanceIDService">
<intent-filter>
<action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
</intent-filter>
</service>
Wenn sich die App im Hintergrund befindet und eine Benachrichtigung eintrifft, wird die Standardbenachrichtigung angezeigt und mein Code von wird nicht ausgeführt onMessageReceived
.
Hier ist mein onMessageReceived
Code. Dies wird aufgerufen, wenn meine App im Vordergrund ausgeführt wird, nicht, wenn die App im Hintergrund ausgeführt wird. Wie führe ich diesen Code aus, wenn sich die App auch im Hintergrund befindet?
// [START receive_message]
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
// TODO(developer): Handle FCM messages here.
// If the application is in the foreground handle both data and notification messages here.
// Also if you intend on generating your own notifications as a result of a received FCM
// message, here is where that should be initiated. See sendNotification method below.
data = remoteMessage.getData();
String title = remoteMessage.getNotification().getTitle();
String message = remoteMessage.getNotification().getBody();
String imageUrl = (String) data.get("image");
String action = (String) data.get("action");
Log.i(TAG, "onMessageReceived: title : "+title);
Log.i(TAG, "onMessageReceived: message : "+message);
Log.i(TAG, "onMessageReceived: imageUrl : "+imageUrl);
Log.i(TAG, "onMessageReceived: action : "+action);
if (imageUrl == null) {
sendNotification(title,message,action);
} else {
new BigPictureNotification(this,title,message,imageUrl,action);
}
}
// [END receive_message]
android
firebase
firebase-cloud-messaging
Parth Patel
quelle
quelle
Not getting messages here? See why this may be: goo.gl/39bRNJ
. Die Lösung, wie die folgenden Antworten, finden Sie in der Dokumentation in Nachrichten mit Benachrichtigung und DatennutzdatenAntworten:
1. Warum passiert das?
In FCM (Firebase Cloud Messaging) gibt es zwei Arten von Nachrichten:
onMessageReceived()
Rückruf nur aus, wenn sich Ihre App im Vordergrund befindetonMessageReceived()
Rückruf aus, auch wenn sich Ihre App im Vordergrund / Hintergrund / getötet befindet2. Wie geht das?
Um dies zu erreichen, müssen Sie eine
POST
Anfrage an die folgende URL senden:Überschriften
Content-Type
, Wert:application/json
Authorization
, Wert:key=<your-server-key>
Körper mit Themen
Oder wenn Sie es an bestimmte Geräte senden möchten
3. Wie gehe ich mit der Push-Benachrichtigung um?
So gehen Sie mit der empfangenen Nachricht um:
quelle
Firebase team have not developed a UI to send data-messages to your devices, yet.
Hat sich das im letzten Jahr geändert?onMessageReceived
sie nicht aufgerufen und es ist ein ernstes Problem in FCM !!! Bitte aktualisieren Sie auch Ihre Antwort.Damit die Firebase-Bibliothek in den folgenden Fällen Ihre onMessageReceived () aufruft
Sie dürfen den JSON-Schlüssel "Benachrichtigung" nicht in Ihre Anfrage an die Firebase-API einfügen, sondern müssen stattdessen "Daten" verwenden (siehe unten).
Die folgende Nachricht ruft Ihr onMessageReceived () nicht auf, wenn sich Ihre App im Hintergrund befindet oder beendet wurde, und Sie können Ihre Benachrichtigung nicht anpassen.
aber stattdessen wird dies funktionieren
Grundsätzlich wird die Nachricht im Argument RemoteMessage zusammen mit Ihrem Datenobjekt als Map gesendet. Anschließend können Sie die Benachrichtigung in onMessageReceived wie im Snippet hier verwalten
quelle
Ich habe das Gefühl, dass alle Antworten unvollständig sind, aber alle haben etwas, das Sie benötigen, um eine Benachrichtigung mit Daten zu verarbeiten, wenn sich Ihre App im Hintergrund befindet.
Befolgen Sie diese Schritte und Sie können Ihre Benachrichtigungen verarbeiten, wenn sich Ihre App im Hintergrund befindet.
1. Fügen Sie einen Intent-Filter wie folgt hinzu:
zu einer Aktivität, die Sie die Benachrichtigungsdaten verarbeiten möchten.
Senden Sie Benachrichtigungen mit dem nächsten Format:
Der Schlüssel hier ist hinzufügen
Dabei ist .MainActivity die Aktivität mit dem Intent-Filter, den Sie in Schritt 1 hinzugefügt haben.
Erhalten Sie "Daten" -Informationen aus der Benachrichtigung im onCreate von ".MainActivity":
Und das sollte alles sein, was Sie tun müssen. Ich hoffe das hilft jemandem :)
quelle
Gemäß der Firebase-Dokumentation in Send Downstream mit Firebase gibt es zwei Arten von Nutzdaten:
Daten
Benachrichtigung
Wenn Sie im Vordergrund stehen, können Sie die Daten in FCM mit onMessageReceived () abrufen . Sie können Ihre Daten aus Datennutzdaten abrufen .
Wenn Sie sich im Hintergrund befinden, zeigt FCM eine Benachrichtigung in der Taskleiste basierend auf den Informationen aus der Benachrichtigungsnutzlast an . Titel, Nachricht und Symbol, die für die Benachrichtigung in der Taskleiste verwendet werden, werden von der Benachrichtigungsnutzlast abgerufen .
Diese Benachrichtigungsnutzdaten werden verwendet, wenn Sie Benachrichtigungen automatisch in der Taskleiste anzeigen möchten, wenn sich Ihre App im Hintergrund befindet. Um Benachrichtigungsdaten zu erhalten, wenn sich Ihre App im Hintergrund befindet, sollten Sie click_action in die Benachrichtigungsnutzdaten einfügen .
Fügen Sie diesen Absichtsfilter in Ihrem Manifest in einem Ihrer Aktivitäts-Tags ein. Wenn Sie auf die Benachrichtigung klicken, wird die App geöffnet und Sie gelangen direkt zu der Aktivität, die Sie in click_action definiert haben, in diesem Fall "OPEN_ACTIVTY_1". Und innerhalb dieser Aktivität können Sie die Daten erhalten durch:
Ich verwende FCM für meine Android-App und verwende beide Nutzdaten. Hier ist das Beispiel von JSON, das ich verwende:
quelle
Laut docs
Bearbeiten:
Basierend auf diesem Thread :
Sie können die Nutzdaten von click_action nicht mit Firebase Console festlegen. Sie können versuchen, mit einem Curl-Befehl oder einem benutzerdefinierten http-Server zu testen
quelle
Arbeiten ab Juli 2019
Android compileSdkVersion 28, buildToolsVersion 28.0.3 und Firebase-Messaging: 19.0.1
Nach vielen, vielen Stunden Recherche durch alle anderen Fragen und Antworten von StackOverflow und dem Versuch unzähliger veralteter Lösungen gelang es dieser Lösung, Benachrichtigungen in diesen drei Szenarien anzuzeigen:
- App steht im Vordergrund:
Die Benachrichtigung wird von der onMessageReceived-Methode in meiner MyFirebaseMessagingService-Klasse empfangen
- Die App wurde beendet (sie wird nicht im Hintergrund ausgeführt): Die Benachrichtigung wird von FCM automatisch an die Benachrichtigungsleiste gesendet. Wenn der Benutzer die Benachrichtigung berührt, wird die App gestartet, indem die Aktivität aufgerufen wird, deren Manifest android.intent.category.LAUNCHER enthält. Sie können den Datenteil der Benachrichtigung mit getIntent (). GetExtras () in der onCreate () -Methode abrufen.
- App befindet sich im Hintergrund: Die Benachrichtigung wird von FCM automatisch an die Benachrichtigungsleiste gesendet. Wenn der Benutzer die Benachrichtigung berührt, wird die App in den Vordergrund gestellt, indem die Aktivität gestartet wird, deren Manifest android.intent.category.LAUNCHER enthält. Da meine App in dieser Aktivität launchMode = "singleTop" hat, wird die onCreate () -Methode nicht aufgerufen, da bereits eine Aktivität derselben Klasse erstellt wurde. Stattdessen wird die onNewIntent () -Methode dieser Klasse aufgerufen und Sie erhalten den Datenteil von die Benachrichtigung dort mit intent.getExtras ().
Schritte: 1- Wenn Sie die Hauptaktivität Ihrer App folgendermaßen definieren:
2- Fügen Sie diese Zeilen in der onCreate () -Methode Ihrer MainActivity.class hinzu
und diese Methoden zu derselben MainActivity.class:
3- Erstellen Sie die Klasse MyFirebase wie folgt:
4- Erstellen Sie eine neue Klasse NotificationActivity.class wie folgt:
}}
5- Fügen Sie diese Zeilen zu Ihrem App-Manifest in Ihren Tags hinzu
6- Fügen Sie diese Zeilen in Ihre Application.java onCreate () -Methode oder in die MainActivity.class onCreate () -Methode ein:
Erledigt.
Damit dies in den drei genannten Szenarien gut funktioniert, müssen Sie die Benachrichtigung wie folgt von der Firebase-Webkonsole senden:
Im Abschnitt Benachrichtigung: Benachrichtigungstitel = Titel, der im Benachrichtigungsdialog angezeigt werden soll (optional) Benachrichtigungstext = Nachricht, die dem Benutzer angezeigt werden soll (erforderlich) Dann im Abschnitt Ziel: App = Ihre Android-App und im Abschnitt Zusätzliche Optionen: Android-Benachrichtigungskanal = default_channel_id Benutzerdefinierter Datenschlüssel: Titelwert: (gleicher Text hier als im Feld Titel des Benachrichtigungsabschnitts) Schlüssel: Textwert: (gleicher Text hier als im Nachrichtenfeld des Benachrichtigungsabschnitts) Schlüssel: click_action-Wert: .MainActivity Sound = Deaktiviert
läuft ab = 4 Wochen
Sie können es im Emulator mit API 28 mit Google Play debuggen.
Viel Spaß beim Codieren!
quelle
Da die
display-messages
von Firebase Notification UI gesendeten Funktionen nur funktionieren, wenn sich Ihre App im Vordergrund befindet. Denndata-messages
gibt es eine Notwendigkeit , einen POST Aufruf zu machen FCMSchritte
Installieren Sie die Google Chrome-Erweiterung des Advanced Rest Client
Fügen Sie die folgenden Überschriften hinzu
Schlüssel : Inhaltstyp, Wert : application / json
Schlüssel : Autorisierung, Wert : Schlüssel = "Ihr Serverschlüssel"
Fügen Sie den Körper hinzu
Bei Verwendung von Themen:
Bei Verwendung der Registrierungs-ID:
Das ist es!. Hören Sie sich jetzt
onMessageReceived
wie gewohnt den Rückruf an.quelle
Um die Nachricht im Hintergrund zu erfassen, müssen Sie a verwenden
BroadcastReceiver
und füge dies deinem Manifest hinzu:
quelle
wird nicht jedes Mal aufgerufen, wenn es nur aufgerufen wird, wenn sich die App im Vordergrund befindet
Es gibt eine Überschreibungsmethode, die jedes Mal aufgerufen wird, unabhängig davon, welche App im Vordergrund oder im Hintergrund steht oder getötet wurde. Diese Methode ist jedoch mit dieser Firebase-API-Version verfügbar
Dies ist die Version, die Sie aus Gradle importieren müssen
Das ist die Methode
Mit der vorherigen Firebase-API war diese Methode nicht vorhanden. In diesem Fall behandelt sich die Fire Base selbst, wenn sich die App im Hintergrund befindet. Jetzt haben Sie diese Methode, was auch immer Sie tun möchten. Sie können sie hier in dieser Methode ausführen. ...
Wenn Sie eine frühere Version als die Standardaktivität verwenden, wird in diesem Fall die Daten auf dieselbe Weise abgerufen
// Mach was du willst .... }
Im Allgemeinen ist dies die Struktur vom Server, die wir in der Benachrichtigung erhalten
Es liegt an dir, wie du diesen Datenschlüssel geben willst oder wie du alles benachrichtigen willst, was du geben kannst ....... was auch immer du hier mit demselben Schlüssel geben willst, du wirst diese Daten erhalten ........ .
Es gibt nur wenige Fälle, in denen Sie in diesem Fall keine Klickaktion senden, wenn Sie auf Benachrichtigung klicken. Die Standardaktivität wird geöffnet. Wenn Sie jedoch Ihre spezifische Aktivität öffnen möchten, wenn sich die App im Hintergrund befindet, können Sie Ihre Aktivität von dieser Methode auf handleIntent aus aufrufen wird jedes Mal aufgerufen
quelle
Laut Dokumentation: 17. Mai 2017
Sie sollten also beide Nutzlastbenachrichtigungen + Daten verwenden:
Es ist nicht erforderlich, click_action zu verwenden. Sie sollten nur Exras aus der Absicht der LAUNCHER-Aktivität erhalten
Java-Code sollte in der onCreate-Methode in MainActivity enthalten sein:
Sie können beide Nutzlastbenachrichtigungen + Daten in der Firebase Notifications Console testen . Vergessen Sie nicht, benutzerdefinierte Datenfelder im Abschnitt Erweiterte Optionen auszufüllen
quelle
Hier finden Sie klarere Konzepte zur Firebase-Nachricht. Ich habe es von ihrem Support-Team gefunden.
Firebase hat drei Nachrichtentypen :
Benachrichtigungsnachrichten : Die Benachrichtigungsnachricht funktioniert im Hintergrund oder im Vordergrund. Wenn sich die App im Hintergrund befindet, werden Benachrichtigungsnachrichten an die Taskleiste gesendet. Wenn sich die App im Vordergrund befindet, werden Nachrichten von
onMessageReceived()
oderdidReceiveRemoteNotification
Rückrufe verarbeitet. Dies sind im Wesentlichen sogenannte Display-Nachrichten.Datennachrichten : Auf der Android-Plattform können Datennachrichten im Hintergrund und im Vordergrund ausgeführt werden. Die Datennachricht wird von onMessageReceived () verarbeitet. Ein plattformspezifischer Hinweis wäre hier: Unter Android kann die Datennutzlast in der Absicht abgerufen werden, die zum Starten Ihrer Aktivität verwendet wird. Um dies zu erläutern,
"click_action":"launch_Activity_1"
können Sie diese AbsichtgetIntent()
nur von abrufenActivity_1
.Nachrichten mit Benachrichtigungs- und Datennutzdaten : Im Hintergrund empfangen Apps die Benachrichtigungsnutzdaten in der Benachrichtigungsleiste und verarbeiten die Datennutzdaten nur, wenn der Benutzer auf die Benachrichtigung tippt. Im Vordergrund empfängt Ihre App ein Nachrichtenobjekt mit beiden verfügbaren Nutzdaten. Zweitens wird der
click_action
Parameter häufig in Benachrichtigungsnutzdaten und nicht in Datennutzdaten verwendet. Bei Verwendung innerhalb der Datennutzlast wird dieser Parameter als benutzerdefiniertes Schlüssel-Wert-Paar behandelt. Daher müssen Sie eine benutzerdefinierte Logik implementieren, damit er wie beabsichtigt funktioniert.Außerdem empfehle ich Ihnen, die
onMessageReceived
Methode (siehe Datennachricht) zu verwenden, um das Datenpaket zu extrahieren. Nach Ihrer Logik habe ich das Bundle-Objekt überprüft und den erwarteten Dateninhalt nicht gefunden. Hier ist ein Verweis auf einen ähnlichen Fall, der mehr Klarheit bieten könnte.Für weitere Informationen besuchen Sie meinen diesen Thread
quelle
2017 aktualisierte Antwort
Hier ist eine eindeutige Antwort aus den Dokumenten dazu:
quelle
Einfache Zusammenfassung wie diese
wenn Ihre App ausgeführt wird;
ist Auslöser.
wenn Ihre App nicht ausgeführt wird (durch Wischen getötet);
wird nicht direkt ausgelöst und geliefert. Wenn Sie ein spezielles Schlüssel-Wert-Paar haben. Sie funktionieren nicht, weil onMessageReceived () nicht funktioniert.
Ich habe diesen Weg gefunden;
Setzen Sie in Ihre Launcher-Aktivität diese Logik ein:
Suchen Sie in diesem if-Block nach Ihren Schlüsseln gemäß der Firebase-Benutzeroberfläche.
In diesem Beispiel mein Schlüssel und Wert wie oben; (Entschuldigung für die Sprache =))
Wenn mein Code funktioniert, erhalte ich "com.rda.note".
Mit dieser Codezeile habe ich meine Anwendung geschlossen und Google Play Market geöffnet
Happy Coding =)
quelle
Ich habe die Szenarien herausgefunden,
Wenn sich die App im Vordergrund befindet , wird die Methode onMessageReceived () vom FirebaseService aufgerufen. Daher wird der in der Serviceklasse definierte pendingIntent aufgerufen.
Und wenn sich die App im Hintergrund befindet , wird die erste Aktivität aufgerufen.
Wenn Sie nun eine Splash-Aktivität verwenden , müssen Sie berücksichtigen, dass die Splash-Aktivität aufgerufen wird. Wenn keine Splash-Aktivität vorhanden ist, wird unabhängig von der ersten Aktivität aufgerufen.
Dann müssen Sie getIntent () der firstActivity überprüfen, um festzustellen , ob ein Bundle vorhanden ist. Wenn alles in Ordnung ist, wird das Bundle mit den eingegebenen Werten angezeigt. Wenn der Wert im vom Server gesendeten Daten-Tag so aussieht,
Dann werden Sie in der ersten Aktivität sehen, dass es eine gültige Absicht gibt ( getIntent () ist nicht null ), ein gültiges Bundle und innerhalb des Bundles den gesamten oben erwähnten JSON mit Daten als Schlüssel .
In diesem Szenario sieht der Code zum Extrahieren des Werts folgendermaßen aus:
quelle
Vielen Dank an Sie alle für Ihre Antworten. Aber ich habe dieses Problem gelöst, indem ich eine Datennachricht gesendet habe, anstatt eine Benachrichtigung zu senden . Servercode
Und die Daten in onMessageReceived abgefangen
quelle
Entfernen Sie die Benachrichtigungsnutzdaten vollständig von Ihrer Serveranforderung. Senden Sie nur Daten und verarbeiten Sie sie
onMessageReceived()
, andernfalls werden SieonMessageReceived
nicht ausgelöst, wenn sich die App im Hintergrund befindet oder beendet ist.Folgendes sende ich vom Server:
So können Sie Ihre Daten folgendermaßen empfangen
onMessageReceived(RemoteMessage message)
: (Nehmen wir an, ich muss die ID erhalten)Ebenso können Sie alle Daten abrufen, die Sie vom Server innerhalb gesendet haben
onMessageReceived()
.quelle
Der einfache Weg, Nachrichten zu senden, selbst wenn sich die App im Hintergrund und im Vordergrund befindet, ist wie folgt: - Um eine Nachricht über die API zu senden, können Sie ein Tool namens AdvancedREST Client verwenden, eine Chrome-Erweiterung, und eine Nachricht mit den folgenden Parametern senden.
Rest Client Tool Link: https://chrome.google.com/webstore/detail/advanced-rest-client/hgmloofddffdnphfgcellkdfbfbjeloo
Verwenden Sie diese URL: - https://fcm.googleapis.com/fcm/send Inhaltstyp: application / json Autorisierung: key = Ihr Serverschlüssel From oder Authoization key (siehe unten ref)
Den Autorisierungsschlüssel erhalten Sie, indem Sie die Google-Entwicklerkonsole besuchen und im linken Menü Ihres Projekts auf die Schaltfläche Anmeldeinformationen klicken. Unter den aufgeführten API-Schlüsseln ist der Serverschlüssel Ihr Autorisierungsschlüssel.
Und Sie müssen die Token-ID des Empfängers in den Abschnitt "bis" Ihrer POST-Anfrage einfügen, die über die API gesendet wird.
quelle
Wenn Sie an MessageReceived (RemoteMessage remoteMessage) im Hintergrund arbeiten möchten, senden Sie nur den Datenteil-Benachrichtigungsteil:
"AnotherActivity": "True", "to": "Geräte-ID oder Geräte-Token"
Auf diese Weise ist onMessageRecivied der Hintergrund und der Vordergrund eines Anrufs, ohne dass eine Benachrichtigung über die Benachrichtigungsleiste in Ihrer Launcher-Aktivität verarbeitet werden muss. Behandeln Sie die Datennutzdaten folgendermaßen:
quelle
Juni 2018 Antwort -
Sie müssen sicherstellen, dass die Nachricht kein Schlüsselwort "Benachrichtigung" enthält. Geben Sie nur "Daten" an, und die App kann die Nachricht in onMessageReceived verarbeiten, auch wenn sie im Hintergrund oder getötet ist.
Verwenden von Cloud-Funktionen:
Dann in Ihrem onMessageReceived (), in Ihrer Klasse, die com.google.firebase.messaging.FirebaseMessagingService erweitert:
quelle
Laut OAUTH 2.0:
In diesem Fall tritt ein Auth-Problem auf, da FCM jetzt OAUTH 2 verwendet
Also habe ich die Firebase-Dokumentation gelesen und laut Dokumentation gibt es eine neue Möglichkeit, Datennachrichten zu veröffentlichen.
Überschriften
Auth
Beispielkörper
In der URL befindet sich die Datenbank-ID, die Sie auf Ihrer Firebase-Konsole finden. (Go Projekteinstellungen)
Und jetzt nehmen wir unser Token (es wird nur 1 Stunde gültig sein):
Öffnen Sie zunächst in der Firebase-Konsole Einstellungen> Dienstkonten . Klicken Sie auf Neuen privaten Schlüssel generieren , und speichern Sie die JSON-Datei mit dem Schlüssel sicher. Ich brauchte diese JSON-Datei, um Serveranforderungen manuell zu autorisieren. Ich habe es heruntergeladen.
Dann erstelle ich ein node.js-Projekt und verwende diese Funktion, um mein Token abzurufen.
Jetzt kann ich dieses Token in meiner Post-Anfrage verwenden. Dann poste ich meine Datennachricht und sie wird jetzt von meiner Apps onMessageReceived-Funktion verarbeitet.
quelle
Seit 2019 hat Google Firebase eine große Änderung in seinen APIs. Ich meine:
'com.google.firebase:firebase-messaging:18.0.0'
In 18.0.0 wurden sie entfernt
MyFirebaseInstanceIDService
und Sie müssen ein Token erhalten,MyFirebaseMessagingService
damit Sie nur schreiben müssen:und auch in Ihrer AndroidManifest.xml müssen Sie entfernen:
Es wird außerdem empfohlen, Standardwerte festzulegen, um das Erscheinungsbild von Benachrichtigungen anzupassen. Sie können ein benutzerdefiniertes Standardsymbol und eine benutzerdefinierte Standardfarbe angeben, die angewendet werden, wenn in den Benachrichtigungsnutzdaten keine entsprechenden Werte festgelegt sind.
Fügen Sie diese Zeilen in das Anwendungs-Tag ein, um das benutzerdefinierte Standardsymbol und die benutzerdefinierte Farbe festzulegen:
Um Benachrichtigungsnachrichten in einer Hintergrund-App zu verarbeiten, sollten Sie in Ihrer ersten Aktivität eine Absicht definieren, auch wenn es sich um SplashScreen handelt. Wenn sich Ihre App im Hintergrund befindet, leitet Android Benachrichtigungsnachrichten an die Taskleiste weiter. Ein Benutzer, der auf die Benachrichtigung tippt, öffnet standardmäßig den App-Starter.
Zum Beispiel, wenn Ihr Json so ist:
Sie müssen nur eine einfache Absicht schreiben, um diese Werte zu erhalten:
quelle
Zusätzlich zu den obigen Antworten: Wenn Sie Push-Benachrichtigungen mithilfe der FCM-Konsole testen , werden der Schlüssel und das Objekt "Daten" nicht zum Push-Benachrichtigungspaket hinzugefügt. Sie erhalten also keine detaillierte Push-Benachrichtigung, wenn die App im Hintergrund ist oder beendet wurde.
In diesem Fall müssen Sie sich für Ihre Back-End-Administratorkonsole entscheiden, um das App-Hintergrundszenario zu testen.
Hier haben Sie Ihrem Push-Bundle den 'Daten'-Schlüssel hinzugefügt. Daher wird der detaillierte Push wie erwartet angezeigt. Hoffe das hilft wenigen.
quelle
Mit diesem Code können Sie die Benachrichtigung im Hintergrund / Vordergrund erhalten und auch folgende Aktionen ausführen:
In-App verwenden diesen Code:
quelle
Es gibt zwei Arten von Benachrichtigungen
Sie müssen Datenbenachrichtigungen verwenden, um die Benachrichtigung zu verarbeiten, wenn sich die App im Hintergrund befindet.
quelle
Ich habe das gleiche Problem festgestellt und die Firebase-Bibliothek neu kompiliert und verhindert, dass Benachrichtigungen gesendet werden, wenn sich die Anwendung im Hintergrund befindet
* Bibliothek https://github.com/erdalceylan/com-google-firebase-messaging
* *
Hoffnung hilft. Viel Glück
quelle