firebase-cloud-messagingErste Schritte mit Firebase-Cloud-Messaging


Bemerkungen

Eine notorische allgemeine Frage ist "wie man Benachrichtigungen von Gerät zu Gerät sendet", leider lautet die Antwort: Das geht nicht. FCM muss ausgelöst werden, um Push-Benachrichtigungen senden zu können. Dies kann auf drei verschiedene Arten erfolgen:

  1. Direkt in der Firebase-Webkonsole
  2. Festlegen eines Firebase-Funktionslisteners und Auslösen des FCM
  3. Ein Server fordert FCM zum Senden einer Push-Benachrichtigung auf

Eine Push-Benachrichtigung ist eine Informations-Nutzlast, die vom FCM gesendet wird. Es gibt drei Arten von Push-Benachrichtigungen: notification , data , notification and data . Diese Informationen können als JSON dargestellt werden:

  {
    "to" : "APA91bHun4MxP5egoKMwt2KZFBaFUH-1RYqx...",
    "notification" : {
      "body" : "great match!",
      "title" : "Portugal vs. Denmark",
      "icon" : "myicon"
    },
    "data" : {
      "Nick" : "Mario",
      "Room" : "PortugalVSDenmark"
    }
  }

Das obige Beispiel ist für den dritten Typ, notification und data kombiniert. Das ist es, was an FCM gesendet werden soll.

  1. Die Konsole kann eine notification und notification mit data senden, jedoch niemals nur mit data
  2. Funktionen und jeder Server kann die 3 Typen senden

Die Bedeutung des notification besteht darin, dass Anwendungen Standard- Pushs erhalten können , die es anderen Teams wie Marketing ermöglichen, das Anwendungswachstum zu erhöhen, indem sie einfach die Webkonsole verwenden, ohne dass weitere Codierungen erforderlich sind, außer dem Hinzufügen der Bibliothek zum Projekt.

Bitte verwechseln Sie die Push-Benachrichtigung, den notification und die visuelle Benachrichtigung nicht. Diese letzte entspricht einer Android-Klasse (üblicherweise NotificationCompat).

Das Verhalten des Push unterscheidet sich je nach Typ und ob sich die App im Vordergrund oder im Hintergrund befindet. Nicht im Vordergrund bedeutet, minimiert oder geschlossen.

  1. notification wird eine visuelle Standardbenachrichtigung auslösen, falls sich die App nicht im Vordergrund befindet. Diese Benachrichtigung kann im Manifest angepasst werden. Weitere Informationen finden Sie in der Dokumentation . Wenn sich die App im Vordergrund befindet, müssen wir das Verhalten in der Methode onMessageReceived .
  2. data muss immer angepasst werden.
  3. Kombinierte notification und data wenn sich die App nicht im Vordergrund befindet , lösen die visuelle Standardbenachrichtigung aus und die data ist verfügbar, wenn der Benutzer auf die Schaltfläche klickt. Da die getIntent().getStringExtra("yourKey"); ausgelöst wird, wenn auf die visuelle Benachrichtigung geklickt wird, müssen Sie getIntent().getStringExtra("yourKey"); buchstäblich getIntent().getStringExtra("yourKey"); in dieser Aktivität, um die Daten zu erhalten. Wenn die App aktiv ist (im Vordergrund), müssen Sie das Verhalten innerhalb der onMessageReceived Methode onMessageReceived und Sie erhalten sofort Zugriff auf die data .

Um die Informations-Payload onMessageReceived , müssen Sie dies in der onMessageReceived Methode tun. Dort ist das einzige verfügbare Argument die Nachricht:

  1. Um die notification , müssen Sie remoteMessage.getNotification() verwenden, um den remoteMessage.getNotification() oder Titel mit den entsprechenden Methoden zu erhalten
  2. Um die data , müssen Sie remoteMessage.getData().get("yourKey") .

Es ist eine gute Idee, jede Nicht-Null- Überprüfung hinzuzufügen. In erweiterten Apps werden verschiedene Benachrichtigungstypen angezeigt. Eine gute Strategie besteht darin, zu überprüfen, ob die notification und die data nicht jeweils null sind. Eine konsequente nützliche Strategie wird immer einen haben verwendet type Schlüssel in den data - Benachrichtigungen , um eine Flusskontrolle zu tun.

Um data von der Firebase-Webkonsole aus zu senden, müssen die erweiterten Optionen geöffnet werden.

Die notification sind begrenzt und in der Dokumentation angegeben. Die Werte in einem beliebigen Typ können nur String sein .

Wenn Sie Probleme bei der Suche nach Dokumentationen in Firebase haben, wechseln Sie bitte zum Ende der Seite und ändern Sie die Sprache in "Englisch". Dokumentationen sind in einigen anderen Sprachen dünner .

Installation oder Setup

Firebase Cloud Messaging ist der Firebase-Dienst, der Push-Benachrichtigungen verarbeitet. Sie können diesen Dienst in jedem Client hinzufügen: Web, Android oder IOS. Die jeweilige Funktion muss aus der Dokumentation abgelesen werden.

Beim Hinzufügen von FCM in einem beliebigen Projekttyp wird immer eine Bibliothek hinzugefügt .

In Anbetracht der besonderen Unterstützung für Android ist es sinnvoll, einige Zeilen dafür zu verwenden. Erstellen Sie ein neues Projekt mit Android Studio. Wählen Sie im Menü Extras / Firebase den Firebase-Assistenten aus. Wählen Sie "Cloud Messaging" und befolgen Sie die Schritte 1 und 2.

  1. Wenn in Ihrem Projekt zuvor ein weiterer Firebase-Dienst hinzugefügt wird, wird der erste Schritt als abgeschlossen markiert. Andernfalls müssen Sie dies tun. Im ersten Schritt können Sie ein Projekt in Firebase erstellen oder ein neues erstellen. In diesem Schritt wird eine google-service.json-Datei heruntergeladen, die die Konfiguration für die Verbindung mit dem Firebase-Projekt aufweist. Diese Datei befindet sich im Ordner "App".
  2. In diesem Schritt werden die Google Services-Bibliothek und die Firebase-Bibliothek zum Gradle hinzugefügt. Außerdem werden in diesen Dateien zusätzliche Konfigurationen vorgenommen.

Dies ist die Grundlage für das Hinzufügen von FCM in einem Projekt. Ab diesem Zeitpunkt kann der Client bereits FCM-Push-Benachrichtigungen empfangen, die eine "Benachrichtigungs" -Nutzlast enthalten, solange sich die App nicht im Vordergrund befindet (weitere Einzelheiten in den Anmerkungen).

Um das FCM-Verhalten im Client weiter anzupassen, müssen wir zwei Dienste hinzufügen. Dies ist auf der offiziellen Website gut dokumentiert . Wieder werden wir einige Rücksicht auf Android nehmen:

  1. Erstellen Sie eine Klasse, die FirebaseMessagingService und überschreiben Sie die onMessageReceived-Methode
  2. Erstellen Sie eine Klasse, die FirebaseInstanceIdService und überschreiben Sie die onTokenRefresh-Methode
  3. Registrieren Sie beide Klassen im Manifest. Führen Sie dazu das application Tag </ intent-filter> </ intent-filter> aus

Sie können die notification Payload und die data Payload innerhalb der onMessageReceived Methode mit dem einzigen dortigen Argument onMessageReceived . Die onTokenRefresh Methode wird aufgerufen, wenn das FCM-Token von FCM zugewiesen wird. Ein FCM-Token ist eine eindeutige ID für die App-Installation und das Gerät und kann als Adresse des Geräts zum direkten Senden von Push-Benachrichtigungen verwendet werden.

Bitte lesen Sie die Hinweise für weitere Informationen zu den Benachrichtigungstypen und dem damit verbundenen Verhalten.