Testnachricht an eine App im Hintergrund senden

Beginnen Sie mit dem einfachsten Anwendungsfall: Senden Sie eine Testbenachrichtigung über den Notifications Composer an ein Entwicklungsgerät, wenn die App auf dem Gerät im Hintergrund ausgeführt wird.FCM Auf dieser Seite finden Sie alle Schritte, die dafür erforderlich sind, von der Einrichtung bis zur Bestätigung. Möglicherweise sind einige Schritte bereits abgeschlossen, wenn Sie eine Android-Client-App für FCM eingerichtet haben.

SDK einrichten

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

Hinweis

  • Installieren Sie Android Studio oder aktualisieren Sie es auf die neueste Version.

  • Ihr Projekt muss die folgenden Anforderungen erfüllen. Bei einigen Produkten gelten möglicherweise strengere Anforderungen:

    • Die App ist auf API‑Level 21 (Lollipop) oder höher ausgerichtet.
    • Android 5.0 oder höher
    • Verwendet Jetpack (AndroidX), was die Einhaltung der folgenden Versionsanforderungen erfordert:
      • com.android.tools.build:gradle v7.3.0 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.
    Firebase-SDKs mit einer Abhängigkeit von Google Play-Diensten erfordern, dass auf dem Gerät oder Emulator Google Play-Dienste installiert sind.

  • Melden Sie sich mit Ihrem Google-Konto in Firebase an.

Wenn Sie noch kein Android-Projekt haben und nur ein Firebase-Produkt ausprobieren möchten, können Sie eines unserer Schnellstartbeispiele herunterladen.

Firebase-Projekt erstellen

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. Weitere Informationen zu Firebase-Projekten finden Sie unter Firebase-Projekte.

App bei Firebase registrieren

Wenn Sie Firebase in Ihrer Android-App verwenden möchten, müssen Sie Ihre App in Ihrem Firebase-Projekt registrieren. Die Registrierung Ihrer App wird oft auch als „Hinzufügen“ Ihrer App zu Ihrem Projekt bezeichnet.

  1. Rufen Sie die Firebase-Konsole auf.

  2. Klicken Sie in der Mitte der Projektübersicht auf das Symbol Android () 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-Nickname und SHA-1-Wert des Signaturzertifikats für die Fehlerbehebung.

  5. Klicken Sie auf App registrieren.

Firebase-Konfigurationsdatei hinzufügen

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

    1. Klicken Sie auf google-services.json herunterladen, um die Firebase-Konfigurationsdatei Ihrer App zu erhalten.

    2. Verschieben Sie die Konfigurationsdatei in das Modulstammverzeichnis (auf App-Ebene) Ihrer App.

  2. Wenn Sie die Werte in Ihrer google-services.json-Konfigurationsdatei für Firebase SDKs verfügbar machen möchten, benötigen Sie das Gradle-Plug-in für Google-Dienste (google-services).

    1. Fügen Sie in der Gradle-Datei auf Stammebene (Projektebene) (<project>/build.gradle.kts oder <project>/build.gradle) das Google-Dienste-Plug-in 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.3" 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.3' apply false
      }
    2. Fügen Sie in der Gradle-Datei des Moduls (auf App-Ebene) (in der Regel <project>/<app-module>/build.gradle.kts oder <project>/<app-module>/build.gradle) das Google-Dienste-Plug-in 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'
        // ...
      }

Firebase SDKs zu Ihrer App hinzufügen

  1. Fügen Sie in der Gradle-Datei Ihres Moduls (auf App-Ebene) (in der Regel <project>/<app-module>/build.gradle.kts oder <project>/<app-module>/build.gradle) die Abhängigkeit für die Firebase Cloud Messaging-Bibliothek für Android hinzu. Wir empfehlen, die Firebase Android BoM zu verwenden, um die Versionsverwaltung der Bibliothek zu steuern.

    Für eine optimale Nutzung von Firebase Cloud Messaging empfehlen wir, Google Analytics in Ihrem Firebase-Projekt zu aktivieren und das Firebase SDK für Google Analytics in Ihre App einzubinden.

    dependencies {
        // Import the BoM for the Firebase platform
        implementation(platform("com.google.firebase:firebase-bom:34.0.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")
    }

    Mit der Firebase Android BoM haben Sie immer eine kompatible Version der Firebase Android-Bibliotheken in Ihrer App.

    (Alternative)  Firebase-Bibliotheksabhängigkeiten ohne Verwendung von BoM hinzufügen

    Wenn Sie die Firebase BoM nicht verwenden möchten, müssen Sie jede Firebase-Bibliotheksversion in der entsprechenden Abhängigkeitszeile angeben.

    Wenn Sie mehrere Firebase-Bibliotheken in Ihrer App verwenden, empfehlen wir dringend, die BoM zum Verwalten von 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:25.0.0")
        implementation("com.google.firebase:firebase-analytics:23.0.0")
    }

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

Auf das Registrierungstoken zugreifen

Wenn Sie eine Nachricht an ein bestimmtes Gerät senden möchten, benötigen Sie das Registrierungstoken dieses Geräts. Da Sie das Token in ein Feld in der Benachrichtigungskonsole eingeben müssen, um diese Anleitung abzuschließen, sollten Sie es 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 einzelne Geräte als Zielgruppe festlegen 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 daran überwachen. Da das Token nach dem ersten Start rotiert werden kann, wird dringend empfohlen, das zuletzt aktualisierte Registrierungstoken abzurufen.

Das Registrierungstoken kann sich ändern, wenn:

  • Die App wird auf einem neuen Gerät wiederhergestellt
  • Der Nutzer deinstalliert/installiert die App neu
  • Der Nutzer löscht App-Daten.

Aktuelles Registrierungstoken abrufen

Wenn Sie das aktuelle Token abrufen müssen, rufen Sie FirebaseMessaging.getInstance().getToken() auf:

Kotlin

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();
        }
    });

Tokenerstellung überwachen

Der onNewToken-Callback wird immer dann ausgelöst, wenn ein neues Token generiert wird.

Kotlin

/**
 * 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 der gewünschten Methode speichern.

Testbenachrichtigung senden

  1. Installieren Sie die App auf dem Zielgerät und führen Sie sie aus. Auf Apple-Geräten müssen Sie die Anfrage für die Berechtigung zum Empfangen von Remote-Benachrichtigungen annehmen.

  2. Die App muss auf dem Gerät im Hintergrund ausgeführt werden.

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

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

    1. Wählen Sie Firebase-Benachrichtigungen und dann Erstellen aus.
  5. Wählen Sie andernfalls auf dem Tab Kampagnen die Option Neue Kampagne und dann Benachrichtigungen aus.

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

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

  8. Geben Sie in das Feld mit der Bezeichnung FCM-Registrierungstoken hinzufügen das Registrierungstoken ein, das Sie in einem vorherigen Abschnitt dieser Anleitung erhalten haben.

  9. Wählen Sie Testen aus.

Nachdem Sie Testen ausgewählt haben, sollte das Zielclientgerät (mit der App im Hintergrund) die Benachrichtigung erhalten.

Informationen zur Zustellung von Nachrichten an Ihre App finden Sie im FCM-Berichts-Dashboard. Dort wird die Anzahl der auf Apple- und Android-Geräten gesendeten und geöffneten Nachrichten sowie die Anzahl der Impressionen (von Nutzern gesehene Benachrichtigungen) für Android-Apps erfasst.

Nächste Schritte

Nachrichten an Apps im Vordergrund senden

Nachdem Sie Benachrichtigungen erfolgreich gesendet haben, während sich Ihre App im Hintergrund befindet, können Sie mit dem Senden an Apps im Vordergrund beginnen. Weitere Informationen finden Sie unter Nachrichten in einer Android-App empfangen.

Über Benachrichtigungen hinaus

Wenn Sie über Benachrichtigungen hinausgehen und Ihrer App andere, erweiterte Verhaltensweisen hinzufügen möchten, sehen Sie sich Folgendes an: