Um mit FCM zu beginnen, erstellen Sie den einfachsten Anwendungsfall: Senden einer Testbenachrichtigungsnachricht vom Benachrichtigungs-Composer an ein Entwicklungsgerät, wenn sich die App auf dem Gerät im Hintergrund befindet. Diese Seite listet alle Schritte auf, um dies zu erreichen, von der Einrichtung bis zur Überprüfung – sie kann Schritte abdecken, die Sie bereits ausgeführt haben, wenn Sie eine Android-Client-App für FCM eingerichtet haben.
Richten Sie das SDK ein
Dieser Abschnitt behandelt Aufgaben, die Sie möglicherweise abgeschlossen haben, wenn Sie bereits andere Firebase-Funktionen für Ihre App aktiviert haben.
Bevor Sie beginnen
Installieren oder aktualisieren Sie Android Studio auf die neueste Version.
Stellen Sie sicher, dass Ihr Projekt diese Anforderungen erfüllt:
- Zielt auf API-Ebene 19 (KitKat) oder höher ab
- Verwendet Android 4.4 oder höher
- Verwendet Jetpack (AndroidX) , was die Erfüllung dieser Versionsanforderungen beinhaltet:
-
com.android.tools.build:gradle
v3.2.1 oder höher -
compileSdkVersion
28 oder höher
-
Richten Sie ein physisches Gerät ein oder verwenden Sie einen Emulator, um Ihre App auszuführen.
Beachten Sie, dass Firebase SDKs mit einer Abhängigkeit von Google Play-Diensten erfordern, dass auf dem Gerät oder Emulator Google Play-Dienste installiert sind.
Wenn Sie noch kein Android-Projekt haben und nur ein Firebase-Produkt ausprobieren möchten, können Sie eines unserer Schnellstart-Beispiele herunterladen.
Erstellen Sie ein Firebase-Projekt
Bevor Sie Firebase zu Ihrer Android-App hinzufügen können, müssen Sie ein Firebase-Projekt erstellen, um eine Verbindung zu Ihrer Android-App herzustellen. Besuchen Sie Firebase-Projekte verstehen , um mehr über Firebase-Projekte zu erfahren.
Registrieren Sie Ihre App bei Firebase
Um Firebase in Ihrer Android-App zu verwenden, müssen Sie Ihre App bei Ihrem Firebase-Projekt registrieren. Das Registrieren Ihrer App wird oft als „Hinzufügen“ Ihrer App zu Ihrem Projekt bezeichnet.
Gehen Sie zur Firebase-Konsole .
Klicken Sie in der Mitte der Projektübersichtsseite auf das Android- Symbol (
) oder auf App hinzufügen , um den Setup-Workflow zu starten.Geben Sie den Paketnamen Ihrer App in das Feld Android-Paketname ein.
Ein Paketname identifiziert Ihre App eindeutig auf dem Gerät und im Google Play Store.
Ein Paketname wird häufig als Anwendungs-ID bezeichnet.
Suchen Sie den Paketnamen Ihrer App in der Gradle-Datei Ihres Moduls (auf App-Ebene), normalerweise
app/build.gradle
(Beispielpaketname:com.yourcompany.yourproject
).Beachten Sie, dass beim Wert des Paketnamens zwischen Groß- und Kleinschreibung unterschieden wird und er für diese Firebase-Android-App nicht mehr geändert werden kann, nachdem sie bei Ihrem Firebase-Projekt registriert wurde.
(Optional) Geben Sie weitere App-Informationen ein: App-Nickname und Debug-Signaturzertifikat SHA-1 .
App-Nickname : Eine interne, praktische Kennung, die nur für Sie in der Firebase-Konsole sichtbar ist
Debug-Signaturzertifikat SHA-1 : Ein SHA-1-Hash ist für die Firebase-Authentifizierung (bei Verwendung der Google-Anmeldung oder Anmeldung per Telefonnummer ) und Firebase Dynamic Links erforderlich.
Klicken Sie auf App registrieren .
Fügen Sie eine Firebase-Konfigurationsdatei hinzu
Laden Sie die Firebase-Android-Konfigurationsdatei (
) herunter und fügen Sie sie Ihrer App hinzu:google-services.json Klicken Sie auf Download google-services.json, um Ihre Firebase-Android-Konfigurationsdatei abzurufen.
Verschieben Sie Ihre Konfigurationsdatei in das Stammverzeichnis des Moduls (auf App-Ebene) Ihrer App.
Die Firebase-Konfigurationsdatei enthält eindeutige, aber nicht geheime Kennungen für Ihr Projekt. Weitere Informationen zu dieser Konfigurationsdatei finden Sie unter Firebase-Projekte verstehen .
Sie können Ihre Firebase-Konfigurationsdatei jederzeit erneut herunterladen.
Stellen Sie sicher, dass dem Namen der Konfigurationsdatei keine zusätzlichen Zeichen wie
(2)
angehängt werden.
Um die Werte in Ihrer
-Konfigurationsdatei für Firebase SDKs zugänglich zu machen, benötigen Sie das Gradle-Plug-in für Google-Dienste (google-services.json google-services
).Fügen Sie in Ihrer Gradle-Datei auf Stammebene (Projektebene) (
<project>/build.gradle
) das Plug-in für Google-Dienste als Buildscript-Abhängigkeit hinzu:buildscript { repositories { // Make sure that you have the following two repositories google() // Google's Maven repository mavenCentral() // Maven Central repository } dependencies { ... // Add the dependency for the Google services Gradle plugin classpath 'com.google.gms:google-services:4.3.15' } } allprojects { ... repositories { // Make sure that you have the following two repositories google() // Google's Maven repository mavenCentral() // Maven Central repository } }
Fügen Sie in Ihrer Modul-Gradle-Datei (auf App-Ebene) (normalerweise
<project>/<app-module>/build.gradle
) das Plug-in für Google-Dienste hinzu:plugins { id 'com.android.application' // Add the Google services Gradle plugin id 'com.google.gms.google-services' ... }
Fügen Sie Ihrer App Firebase-SDKs hinzu
Fügen Sie in Ihrer Modul-Gradle-Datei (auf App-Ebene) (normalerweise
<project>/<app-module>/build.gradle
) die Abhängigkeit für die Firebase Cloud Messaging Android-Bibliothek hinzu. Wir empfehlen die Verwendung der Firebase Android BoM zur Steuerung der Bibliotheksversionierung.Für ein optimales Erlebnis mit Firebase Cloud Messaging empfehlen wir, Google Analytics in Ihrem Firebase-Projekt zu aktivieren und Ihrer App das Firebase SDK für Google Analytics hinzuzufügen.
Java
dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:32.1.0') // Add the dependencies for the Firebase Cloud Messaging and Analytics libraries // When using the BoM, you don't specify versions in Firebase library dependencies implementation 'com.google.firebase:firebase-messaging' implementation 'com.google.firebase:firebase-analytics' }
Durch die Verwendung der Firebase Android BoM verwendet Ihre App immer kompatible Versionen von Firebase Android-Bibliotheken.
(Alternative) Fügen Sie Firebase-Bibliotheksabhängigkeiten hinzu , ohne die Stückliste zu verwenden
Wenn Sie die Firebase-Stückliste nicht verwenden möchten, müssen Sie jede Firebase-Bibliotheksversion in ihrer Abhängigkeitszeile angeben.
Beachten Sie, dass wir bei Verwendung mehrerer Firebase-Bibliotheken in Ihrer App dringend empfehlen, die BoM zum Verwalten von Bibliotheksversionen zu verwenden, wodurch sichergestellt wird, dass alle Versionen kompatibel sind.
dependencies { // Add the dependencies for the Firebase Cloud Messaging and Analytics libraries // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation 'com.google.firebase:firebase-messaging:23.1.2' implementation 'com.google.firebase:firebase-analytics:21.3.0' }
Kotlin+KTX
dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:32.1.0') // Add the dependencies for the Firebase Cloud Messaging and Analytics libraries // When using the BoM, you don't specify versions in Firebase library dependencies implementation 'com.google.firebase:firebase-messaging-ktx' implementation 'com.google.firebase:firebase-analytics-ktx' }
Durch die Verwendung der Firebase Android BoM verwendet Ihre App immer kompatible Versionen von Firebase Android-Bibliotheken.
(Alternative) Fügen Sie Firebase-Bibliotheksabhängigkeiten hinzu , ohne die Stückliste zu verwenden
Wenn Sie die Firebase-Stückliste nicht verwenden möchten, müssen Sie jede Firebase-Bibliotheksversion in ihrer Abhängigkeitszeile angeben.
Beachten Sie, dass wir bei Verwendung mehrerer Firebase-Bibliotheken in Ihrer App dringend empfehlen, die BoM zum Verwalten von Bibliotheksversionen zu verwenden, wodurch sichergestellt wird, dass alle Versionen kompatibel sind.
dependencies { // Add the dependencies for the Firebase Cloud Messaging and Analytics libraries // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation 'com.google.firebase:firebase-messaging-ktx:23.1.2' implementation 'com.google.firebase:firebase-analytics-ktx:21.3.0' }
Synchronisieren Sie Ihr Android-Projekt mit Gradle-Dateien.
Gradle-Builds, die das Android Gradle-Plugin (AGP) v4.2 oder früher verwenden, müssen Java 8-Unterstützung aktivieren. Andernfalls kommt es bei diesen Android-Projekten beim Hinzufügen eines Firebase SDK zu einem Build-Fehler.
Um diesen Build-Fehler zu beheben, haben Sie zwei Möglichkeiten:
- Fügen Sie die aufgelisteten
compileOptions
aus der Fehlermeldung zu Ihrerbuild.gradle
Datei auf App-Ebene hinzu. - Erhöhen Sie die
minSdkVersion
für Ihr Android-Projekt auf 26 oder höher.
Weitere Informationen zu diesem Build-Fehler finden Sie in diesen häufig gestellten Fragen .
- Fügen Sie die aufgelisteten
Greifen Sie auf das Registrierungstoken zu
Um eine Nachricht an ein bestimmtes Gerät zu senden, müssen Sie das Registrierungstoken dieses Geräts kennen. Da Sie das Token in ein Feld in der Benachrichtigungskonsole eingeben müssen, um dieses Tutorial abzuschließen, stellen Sie sicher, dass Sie das Token kopieren oder sicher speichern, nachdem Sie es abgerufen haben.
Beim ersten Start Ihrer App generiert das FCM SDK ein Registrierungstoken für die Client-App-Instanz. Wenn Sie auf einzelne Geräte abzielen oder Gerätegruppen erstellen möchten, müssen Sie auf dieses Token zugreifen, indem Sie FirebaseMessagingService
erweitern und onNewToken
überschreiben.
In diesem Abschnitt wird beschrieben, wie Sie das Token abrufen und Änderungen am Token überwachen. Da das Token nach dem ersten Start rotiert werden kann, wird dringend empfohlen, das neueste aktualisierte Registrierungstoken abzurufen.
Das Registrierungstoken kann sich ändern, wenn:
- Die App wird auf einem neuen Gerät wiederhergestellt
- Der Benutzer deinstalliert/installiert die App neu
- Der Benutzer löscht App-Daten.
Rufen Sie das aktuelle Registrierungstoken ab
Wenn Sie das aktuelle Token abrufen müssen, rufen Sie FirebaseMessaging.getInstance().getToken()
auf:
Kotlin+KTX
FirebaseMessaging.getInstance().token.addOnCompleteListener(OnCompleteListener { task -> if (!task.isSuccessful) { Log.w(TAG, "Fetching FCM registration token failed", task.exception) return@OnCompleteListener } // Get new FCM registration token val token = task.result // Log and toast val msg = getString(R.string.msg_token_fmt, token) Log.d(TAG, msg) Toast.makeText(baseContext, msg, Toast.LENGTH_SHORT).show() })
Java
FirebaseMessaging.getInstance().getToken() .addOnCompleteListener(new OnCompleteListener<String>() { @Override public void onComplete(@NonNull Task<String> task) { if (!task.isSuccessful()) { Log.w(TAG, "Fetching FCM registration token failed", task.getException()); return; } // Get new FCM registration token String token = task.getResult(); // Log and toast String msg = getString(R.string.msg_token_fmt, token); Log.d(TAG, msg); Toast.makeText(MainActivity.this, msg, Toast.LENGTH_SHORT).show(); } });
Überwachen Sie die Token-Generierung
Der onNewToken
Callback wird immer dann ausgelöst, wenn ein neues Token generiert wird.
Kotlin+KTX
/** * Called if the FCM registration token is updated. This may occur if the security of * the previous token had been compromised. Note that this is called when the * FCM registration token is initially generated so this is where you would retrieve the token. */ override fun onNewToken(token: String) { Log.d(TAG, "Refreshed token: $token") // If you want to send messages to this application instance or // manage this apps subscriptions on the server side, send the // FCM registration token to your app server. sendRegistrationToServer(token) }
Java
/** * There are two scenarios when onNewToken is called: * 1) When a new token is generated on initial app startup * 2) Whenever an existing token is changed * Under #2, there are three scenarios when the existing token is changed: * A) App is restored to a new device * B) User uninstalls/reinstalls the app * C) User clears app data */ @Override public void onNewToken(@NonNull String token) { Log.d(TAG, "Refreshed token: " + token); // If you want to send messages to this application instance or // manage this apps subscriptions on the server side, send the // FCM registration token to your app server. sendRegistrationToServer(token); }
Nachdem Sie das Token erhalten haben, können Sie es an Ihren App-Server senden und mit Ihrer bevorzugten Methode speichern.
Senden Sie eine Testbenachrichtigung
Installieren Sie die App auf dem Zielgerät und führen Sie sie aus. Auf Apple-Geräten müssen Sie die Anfrage zum Erhalt von Remote-Benachrichtigungen akzeptieren.
Stellen Sie sicher, dass sich die App auf dem Gerät im Hintergrund befindet.
Öffnen Sie in der Firebase-Konsole die Seite „Messaging“ .
Wenn dies Ihre erste Nachricht ist, wählen Sie Ihre erste Kampagne erstellen aus.
- Wählen Sie Firebase-Benachrichtigungsnachrichten und dann Erstellen aus.
Wählen Sie andernfalls auf der Registerkarte Kampagnen die Option Neue Kampagne und dann Benachrichtigungen aus.
Geben Sie den Nachrichtentext ein. Alle anderen Felder sind optional.
Wählen Sie im rechten Bereich Testnachricht senden aus .
Geben Sie im Feld FCM-Registrierungstoken hinzufügen das Registrierungstoken ein, das Sie in einem vorherigen Abschnitt dieses Handbuchs erhalten haben.
Wählen Sie Testen aus.
Nachdem Sie Test ausgewählt haben, sollte das Zielclientgerät (mit der App im Hintergrund) die Benachrichtigung erhalten.
Einen Einblick in die Nachrichtenübermittlung an Ihre App erhalten Sie im FCM-Berichts-Dashboard , das die Anzahl der auf Apple- und Android-Geräten gesendeten und geöffneten Nachrichten aufzeichnet, zusammen mit Daten für „Impressionen“ (von Benutzern gesehene Benachrichtigungen) für Android-Apps.
Nächste Schritte
Senden Sie Nachrichten an Apps im Vordergrund
Nachdem Sie erfolgreich Benachrichtigungen gesendet haben, während sich Ihre App im Hintergrund befindet, lesen Sie Nachrichten in einer Android-App empfangen , um mit dem Senden an Apps im Vordergrund zu beginnen.
Gehen Sie über Benachrichtigungen hinaus
Um über Benachrichtigungsmeldungen hinauszugehen und Ihrer App andere, fortgeschrittenere Verhaltensweisen hinzuzufügen, siehe: