Check out what’s new from Firebase at Google I/O 2022. Learn more

Senden Sie eine Testnachricht an eine App im Hintergrund

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.

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

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.

  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 Setup-Workflow 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 Debug-Signaturzertifikat SHA-1 .

  5. Klicken Sie auf App registrieren .

Fügen Sie eine Firebase-Konfigurationsdatei hinzu

  1. Fügen Sie Ihrer App die Firebase-Android-Konfigurationsdatei hinzu:

    1. Klicken Sie auf google-services.json herunterladen , um Ihre Firebase-Android-Konfigurationsdatei ( google-services.json ) abzurufen.

    2. Verschieben Sie Ihre Konfigurationsdatei in das Modulverzeichnis (auf App-Ebene) Ihrer App.

  2. Um Firebase-Produkte in Ihrer App zu aktivieren, fügen Sie das Google-Services-Plug- in zu Ihren Gradle-Dateien hinzu.

    1. Fügen Sie in Ihrer Gradle-Datei auf Stammebene (Projektebene) ( build.gradle ) Regeln hinzu, um das Gradle-Plug-in für Google-Dienste einzuschließen. Überprüfen Sie, ob Sie auch das Maven-Repository von Google haben.

      buildscript {
      
        repositories {
          // Check that you have the following line (if not, add it):
          google()  // Google's Maven repository
        }
      
        dependencies {
          // ...
      
          // Add the following line:
          classpath 'com.google.gms:google-services:4.3.10'  // Google Services plugin
        }
      }
      
      allprojects {
        // ...
      
        repositories {
          // Check that you have the following line (if not, add it):
          google()  // Google's Maven repository
          // ...
        }
      }
      
    2. Wenden Sie in Ihrer Modul-Gradle-Datei (auf App-Ebene) (normalerweise app/build.gradle ) das Google Services Gradle-Plug-in an:

      apply plugin: 'com.android.application'
      // Add the following line:
      apply plugin: 'com.google.gms.google-services'  // Google Services plugin
      
      android {
        // ...
      }
      

Fügen Sie Ihrer App Firebase-SDKs hinzu

  1. Deklarieren Sie mithilfe der Firebase Android BoM die Abhängigkeit für die Firebase Cloud Messaging Android-Bibliothek in der Gradle-Datei Ihres Moduls (auf App-Ebene) (normalerweise app/build.gradle ).

    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:30.0.2')
    
        // Declare 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) Deklarieren Sie Abhängigkeiten der Firebase-Bibliothek, 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, um sicherzustellen, dass alle Versionen kompatibel sind.

    dependencies {
        // Declare 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.0.5'
        implementation 'com.google.firebase:firebase-analytics:21.0.0'
    }
    

    Kotlin+KTX

    dependencies {
        // Import the BoM for the Firebase platform
        implementation platform('com.google.firebase:firebase-bom:30.0.2')
    
        // Declare 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 der Firebase Android-Bibliotheken.

    (Alternative) Deklarieren Sie Abhängigkeiten der Firebase-Bibliothek, 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, um sicherzustellen, dass alle Versionen kompatibel sind.

    dependencies {
        // Declare 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.0.5'
        implementation 'com.google.firebase:firebase-analytics-ktx:21.0.0'
    }
    

  2. Synchronisieren Sie Ihre App, um sicherzustellen, dass alle Abhängigkeiten die erforderlichen Versionen haben.

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() :

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

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

Überwachen Sie die Token-Generierung

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

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

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

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 auf dem Zielgerät und führen Sie sie aus.

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

  3. Öffnen Sie den Benachrichtigungs-Composer und wählen Sie Neue Benachrichtigung aus.

  4. Geben Sie den Nachrichtentext ein.

  5. Wählen Sie Testnachricht senden aus .

  6. Geben Sie im Feld FCM-Registrierungstoken hinzufügen das Registrierungstoken ein , das Sie in einem vorherigen Abschnitt dieses Handbuchs erhalten haben.

  7. Klicken Sie auf Testen

Nachdem Sie auf Test geklickt haben, sollte das Ziel-Client-Gerät (mit der App im Hintergrund) die Benachrichtigung in der Systembenachrichtigungsleiste 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: