Testnachricht an eine App im Hintergrund senden

Erste Schritte mit FCM beginnen Sie mit dem einfachsten Anwendungsfall: Senden einer Testbenachrichtigung von der Benachrichtigungen von Composer an ein Entwicklungsgerät Die App wird auf dem Gerät im Hintergrund ausgeführt. Auf dieser Seite sind alle Schritte von der Einrichtung bis zur Bestätigung aufgeführt. Möglicherweise sind auch Schritte enthalten, die Sie bereits ausgeführt haben, wenn Sie eine Android-Client-App für FCM eingerichtet haben.

SDK einrichten

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

Hinweis

  • Android Studio installieren oder aktualisieren auf die neueste Version.

  • Stellen Sie sicher, dass Ihr Projekt diese Anforderungen erfüllt (beachten Sie, dass einige Produkte möglicherweise strengere Anforderungen):

    • Targets API-Level 19 (KitKat) oder höher
    • Android 4.4 oder höher ist darauf installiert
    • Sie verwenden Jetpack (AndroidX) und erfüllen die folgenden Versionsanforderungen:
      • com.android.tools.build:gradle Version 7.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.
    Für Firebase SDKs mit Abhängigkeit von Google Play-Diensten müssen auf dem Gerät oder Emulator Google Play-Dienste installiert sein.

  • Melden Sie sich in Firebase an. Verwenden Sie dazu Ihr Konto.

Wenn Sie noch kein Android-Projekt haben und einfach ein Firebase-Projekt 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. Besuchen Sie Weitere Informationen zu Firebase-Projekten Firebase-Projekte

App bei Firebase registrieren

Um Firebase in Ihrer Android-App zu verwenden, müssen Sie Ihre App bei Ihrem Firebase-Projekt Das Registrieren Ihrer App wird oft als „Hinzufügen“ bezeichnet. App zu Ihrem Projekt arbeiten.

  1. Rufen Sie die Firebase-Konsole auf.

  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-Alias und SHA-1-Wert des Signaturzertifikats für die Fehlerbehebung.

  5. Klicken Sie auf App registrieren.

Firebase-Konfigurationsdatei hinzufügen

  1. Firebase Android-Konfigurationsdatei herunterladen und hinzufügen (google-services.json) zu deiner App:

    1. Klicken Sie auf google-services.json herunterladen, um die Firebase Android-Datei herunterzuladen. Konfigurationsdatei.

    2. Verschieben Sie Ihre Konfigurationsdatei in das Modul (auf App-Ebene)-Stammverzeichnis von für Ihre 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. In der Gradle-Datei auf Stammebene (Projektebene) (<project>/build.gradle.kts oder <project>/build.gradle), fügen Sie den Google-Dienste-Plug-in als Abhängigkeit:

      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.2" 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.2' apply false
      }
    2. In der Gradle-Datei des Moduls (auf App-Ebene) (normalerweise <project>/<app-module>/build.gradle.kts oder <project>/<app-module>/build.gradle) Fügen Sie das Plug-in für Google-Dienste 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 zur App hinzufügen

  1. Fügen Sie in der Gradle-Datei des Moduls (auf Anwendungsebene) (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-Taste zu verwenden, um die Versionierung der Bibliothek zu steuern.

    Für eine optimale Nutzung von Firebase Cloud Messaging empfehlen wir Google Analytics wird aktiviert in Ihrem Firebase-Projekt und fügen Ihrer App das Firebase SDK für Google Analytics hinzu.

    dependencies {
        // Import the BoM for the Firebase platform
        implementation(platform("com.google.firebase:firebase-bom:33.2.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 dem Firebase Android BoM Ihre App verwendet immer kompatible Versionen der Firebase Android Libraries.

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

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

    Wenn Sie in Ihrer App mehrere Firebase-Bibliotheken verwenden, empfehlen, Bibliotheksversionen mit der BoM zu verwalten. Dadurch wird sichergestellt, dass alle Versionen kompatibel.

    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:24.0.1")
        implementation("com.google.firebase:firebase-analytics:22.1.0")
    }
    Suchen Sie nach einem Kotlin-spezifischen Bibliotheksmodul? Ab Oktober 2023 (Firebase BoM 32.5.0) können sowohl Kotlin- als auch Java-Entwickler das Hauptbibliotheksmodul verwenden. Weitere Informationen finden Sie in den häufig gestellten Fragen zu dieser Initiative.

  2. Synchronisiere dein Android-Projekt mit Gradle-Dateien.

Auf Registrierungstoken zugreifen

Um eine Nachricht an ein bestimmtes Gerät zu senden, müssen Sie die Registrierungstoken. Da Sie das Token in ein Feld im Feld Notifications Console, um dieses Tutorial abzuschließen, achten Sie darauf, das Token zu kopieren oder nach dem Erhalt sicher aufbewahren.

Beim ersten Start deiner App generiert das FCM SDK eine Registrierung Token für die Client-App-Instanz. Wenn Sie eine Ausrichtung auf einzelne Geräte oder Gerätegruppen zu erstellen, müssen Sie auf dieses Token zugreifen, indem Sie FirebaseMessagingService und überschreibt onNewToken.

In diesem Abschnitt wird beschrieben, wie Sie das Token abrufen und Änderungen überwachen. an das Token. Da das Token nach der ersten starten, wird dringend empfohlen, die neueste aktualisierte Registrierung Token.

Das Registrierungstoken kann sich in folgenden Fällen ändern:

  • Die App wird auf einem neuen Gerät wiederhergestellt
  • Der Nutzer deinstalliert die App und installiert sie dann wieder
  • Der Nutzer löscht die App-Daten.

Aktuelles Registrierungstoken abrufen

Rufen Sie zum Abrufen des aktuellen Tokens FirebaseMessaging.getInstance().getToken():

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

Tokengenerierung überwachen

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 Anwendungsserver senden mit Ihrer bevorzugten Methode.

Testbenachrichtigung senden

  1. Installieren Sie die App auf dem Zielgerät und führen Sie sie aus. Auf Apple-Geräten benötigen Sie , um die Berechtigungsanfrage für den Empfang von Remote-Benachrichtigungen zu akzeptieren.

  2. Achte darauf, dass die App auf dem Gerät im Hintergrund ausgeführt wird.

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

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

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

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

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

  8. Geben Sie im Feld FCM-Registrierungstoken hinzufügen die Registrierungstoken Token, das Sie in einem vorherigen Abschnitt dieses Leitfadens 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 Nachrichtenzustellung an Ihre App finden Sie unter die FCM-Berichts-Dashboard, das die Anzahl der Nachrichten, die auf Apple- und Android-Geräten gesendet und geöffnet wurden, Daten für „Impressionen“ (für Nutzer angezeigte Benachrichtigungen) für Android-Apps.

Nächste Schritte

Nachrichten an Apps im Vordergrund senden

Wenn Sie erfolgreich Benachrichtigungen gesendet haben, während Ihre App installiert ist im Hintergrund, siehe Nachrichten in einer Android-App empfangen um mit dem Senden an Apps im Vordergrund zu beginnen.

Mehr als nur Benachrichtigungen

Um über Benachrichtigungen hinauszugehen und weitere erweiterte Funktionen für Ihre App finden Sie unter: