Senden Sie eine Testnachricht an eine Hintergrund-App

Um mit FCM zu beginnen, entwickeln Sie den einfachsten Anwendungsfall: Senden einer Testbenachrichtigungsnachricht vom Notifications Composer an ein Entwicklungsgerät, wenn die App im Hintergrund auf dem Gerät ausgeführt wird. Auf dieser Seite werden alle Schritte aufgeführt, um dies zu erreichen, von der Einrichtung bis zur Überprüfung. Möglicherweise werden auch Schritte abgedeckt, die Sie bereits abgeschlossen haben, wenn Sie eine Android-Client-App für FCM eingerichtet haben.

Richten Sie das SDK ein

In diesem Abschnitt werden Aufgaben behandelt, die Sie möglicherweise erledigt haben, wenn Sie bereits andere Firebase-Funktionen für Ihre App aktiviert haben.

Bevor Sie beginnen

Wenn Sie noch kein Android-Projekt haben und einfach 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 verwenden zu können, 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.

  1. Gehen Sie zur Firebase-Konsole .

  2. Klicken Sie in der Mitte der Projektübersichtsseite auf das Android- Symbol ( ) oder auf App hinzufügen , um den Einrichtungsworkflow zu starten.

  3. Geben Sie den Paketnamen Ihrer App in das Feld „Android-Paketname“ ein.

  4. (Optional) Geben Sie weitere App-Informationen ein: App-Spitzname und Debug-Signaturzertifikat SHA-1 .

  5. Klicken Sie auf App registrieren .

Fügen Sie eine Firebase-Konfigurationsdatei hinzu

  1. Laden Sie die Firebase Android-Konfigurationsdatei ( google-services.json ) herunter und fügen Sie sie Ihrer App hinzu:

    1. Klicken Sie auf „Google-services.json herunterladen“ , um Ihre Firebase-Android-Konfigurationsdatei zu erhalten.

    2. Verschieben Sie Ihre Konfigurationsdatei in das Stammverzeichnis des Moduls (App-Ebene) Ihrer App.

  2. Um die Werte in Ihrer google-services.json -Konfigurationsdatei für Firebase-SDKs zugänglich zu machen, benötigen Sie das Gradle-Plugin für Google-Dienste ( google-services ).

    1. Fügen Sie in Ihrer Gradle-Datei auf Stammebene (Projektebene) ( <project>/build.gradle.kts oder <project>/build.gradle ) das Google Services-Plugin als Abhängigkeit hinzu:

      Kotlin

      plugins {
        id("com.android.application") version "7.3.0" apply false
        // ...
      
        // Add the dependency for the Google services Gradle plugin
        id("com.google.gms.google-services") version "4.4.1" apply false
      }
      

      Groovy

      plugins {
        id 'com.android.application' version '7.3.0' apply false
        // ...
      
        // Add the dependency for the Google services Gradle plugin
        id 'com.google.gms.google-services' version '4.4.1' apply false
      }
      
    2. Fügen Sie in Ihrer Modul-Gradle-Datei (auf App-Ebene) (normalerweise <project>/<app-module>/build.gradle.kts oder <project>/<app-module>/build.gradle ) das Google Services-Plugin hinzu:

      Kotlin

      plugins {
        id("com.android.application")
      
        // Add the Google services Gradle plugin
        id("com.google.gms.google-services")
        // ...
      }
      

      Groovy

      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

  1. Fügen Sie in Ihrer Modul-Gradle-Datei (auf App-Ebene) (normalerweise <project>/<app-module>/build.gradle.kts oder <project>/<app-module>/build.gradle ) die Abhängigkeit für die Firebase Cloud hinzu Messaging-Bibliothek für Android. 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 das Firebase SDK für Google Analytics zu Ihrer App hinzuzufügen.

    dependencies {
        // Import the BoM for the Firebase platform
        implementation(platform("com.google.firebase:firebase-bom:32.8.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 der 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: Wenn Sie mehrere Firebase-Bibliotheken in Ihrer App verwenden, empfehlen wir dringend, die BoM zum Verwalten der Bibliotheksversionen zu verwenden, um sicherzustellen, 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.4.1")
        implementation("com.google.firebase:firebase-analytics:21.6.1")
    }
    
    Suchen Sie nach einem Kotlin-spezifischen Bibliotheksmodul? Ab Oktober 2023 (Firebase BoM 32.5.0) können sich sowohl Kotlin- als auch Java-Entwickler auf das Hauptbibliotheksmodul verlassen (Einzelheiten finden Sie in den FAQ zu dieser Initiative ).

  2. Synchronisieren Sie Ihr Android-Projekt mit Gradle-Dateien.

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 nach dem Abrufen sicher aufbewahren.

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 könnte, 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/neuinstalliert die App
  • 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 Rückruf 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

  1. Installieren Sie die App und führen Sie sie auf dem Zielgerät aus. Auf Apple-Geräten müssen Sie die Anfrage um Erlaubnis zum Empfang von Remote-Benachrichtigungen akzeptieren.

  2. Stellen Sie sicher, dass die App auf dem Gerät im Hintergrund läuft.

  3. Öffnen Sie in der Firebase-Konsole die Seite „Messaging“ .

  4. Wenn dies Ihre erste Nachricht ist, wählen Sie Ihre erste Kampagne erstellen aus.

    1. Wählen Sie Firebase-Benachrichtigungsnachrichten und dann Erstellen aus.
  5. Andernfalls wählen Sie auf der Registerkarte „Kampagnen“ die Option „Neue Kampagne“ und dann „Benachrichtigungen“ aus.

  6. Geben Sie den Nachrichtentext ein. Alle anderen Felder sind optional.

  7. Wählen Sie im rechten Bereich Testnachricht senden aus .

  8. Geben Sie im Feld mit der Bezeichnung „FCM-Registrierungstoken hinzufügen“ das Registrierungstoken ein, das Sie in einem vorherigen Abschnitt dieses Handbuchs erhalten haben.

  9. Wählen Sie Testen aus.

Nachdem Sie Test ausgewählt haben, sollte das Ziel-Clientgerät (mit der App im Hintergrund) die Benachrichtigung erhalten.

Einblicke 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 sowie Daten zu „Impressionen“ (von Benutzern gesehene Benachrichtigungen) für Android-Apps aufzeichnet.

Nächste Schritte

Senden Sie Nachrichten an Apps im Vordergrund

Sobald Sie erfolgreich Benachrichtigungsnachrichten gesendet haben, während sich Ihre App im Hintergrund befindet, lesen Sie „Empfangen von Nachrichten in einer Android-App“, um mit dem Senden an Apps im Vordergrund zu beginnen.

Gehen Sie über Benachrichtigungsnachrichten hinaus

Informationen dazu, wie Sie über Benachrichtigungsnachrichten hinausgehen und Ihrer App weitere, erweiterte Verhaltensweisen hinzufügen, finden Sie unter: