Google verpflichtet sich Rassen Eigenkapital für Black Gemeinden voranzutreiben. Siehe wie.
Diese Seite wurde von der Cloud Translation API übersetzt.
Switch to English

Legen Sie eine Firebase Cloud Messaging-Client-Anwendung auf Android up

Um Ihre Firebase Cloud Messaging Android Client App, verwenden Sie das schreiben FirebaseMessaging API und Android Studio 1.4 oder höher mit Gradle. Die Anweisungen auf dieser Seite an , dass Sie die Schritte zum Abschluss Hinzufügen von Firebase zu dem Android - Projekt .

FCM-Clients benötigen Geräte mit Android 4.1 oder höher ausgeführt wird, dass auch die Google Play Store App installiert haben oder einen Emulator mit Android 4.1 mit Google APIs. Beachten Sie, dass Sie nicht auf diese beschränkt sind Android-Apps über Google Play Store zu implementieren.

Richten Sie das SDK

In diesem Abschnitt werden Aufgaben, die Sie abgeschlossen haben, können, wenn Sie bereits andere Firebase für Ihre App aktiviert haben gehört.

Bevor Sie beginnen

  • Installieren oder Aktualisieren Android Studio auf die neueste Version.

  • Stellen Sie sicher, dass Ihr Projekt diese Anforderungen erfüllt:

    • Targets API-Ebene 16 (Jelly Bean) oder höher
    • Uses Gradle 4.1 oder höher
    • Verwendet Jetpack (AndroidX) , die Erfüllung dieser Version Anforderungen beinhaltet:
      • com.android.tools.build:gradle v3.2.1 oder höher
      • compileSdkVersion 28 oder später
  • Legen Sie ein physisches Gerät oder einen Emulator verwenden, um Ihre Anwendung auszuführen.
    Emulatoren müssen ein Emulator Bild mit Google Play verwenden.

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

Wenn Sie nicht bereits über ein Android - Projekt und möchte nur ein Produkt Firebase auszuprobieren, können Sie einen unserer Download quickstart Proben .

Erstellen Sie ein Projekt Firebase

Bevor Sie Firebase zu Ihrem Android-App hinzufügen können, müssen Sie ein Firebase-Projekt erstellen, um Ihr Android-App zu verbinden. Besuchen Sie verstehen Firebase Projekte mehr über Projekte Firebase zu lernen.

Registrieren Sie Ihre App mit Firebase

Nachdem Sie ein Projekt Firebase haben, können Sie Ihre Android-App, um es hinzuzufügen.

Besuchen Sie verstehen Firebase Projekte für das Hinzufügen von Anwendungen zu einem Projekt Firebase mehr über Best Practices und Überlegungen zu lernen, auch , wie mehrere Build - Varianten zu behandeln.

  1. Gehen Sie auf die Firebase Konsole .

  2. Im Zentrum des Projekts Übersichtsseite klicken Sie auf das Android - Symbol ( ) , um den Setup - Workflow zu starten.

    Wenn Sie bereits eine App zu Ihrem Firebase - Projekt hinzugefügt haben, klicken Sie App Fügen Sie die Plattform - Optionen anzuzeigen.

  3. Geben Sie Ihre App-Paketnamen im Android Paketname Feld.

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

  5. Klicken Sie auf Registrieren App.

Fügen Sie eine Firebase-Konfigurationsdatei

  1. Fügen Sie die Firebase Android-Konfigurationsdatei auf Ihre App:

    1. Klicken Sie auf Download google-services.json auf Ihre Firebase Android Konfigurationsdatei zu erhalten ( google-services.json ).

    2. Bewegen Sie die Konfigurationsdatei in das Modul (app-Ebene) Verzeichnis Ihrer App.

  2. So aktivieren Sie Firebase Produkte in Ihrer Anwendung, fügen Sie die Google-Dienste - Plugin , um Ihre Gradle Dateien.

    1. In Ihrer Root-Ebene (Projektebene) Gradle Datei ( build.gradle ), fügen Sie Regeln für den Google - Service Gradle Plugin enthalten. Überprüfen Sie, ob Sie die Google-Maven-Repository haben, wie gut.

      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.3'  // Google Services plugin
        }
      }
      
      allprojects {
        // ...
      
        repositories {
          // Check that you have the following line (if not, add it):
          google()  // Google's Maven repository
          // ...
        }
      }
      
    2. In Ihrem Modul (app-Ebene) Gradle Datei ( in der Regel app/build.gradle ), gilt die Google - Service Gradle Plugin:

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

In Firebase SDKs zu Ihrer App

  1. Ihr Modul (app-Ebene) Gradle Datei ( in der Regel app/build.gradle ), fügen Sie die Abhängigkeiten für die Firebase Produkte , die Sie in Ihrer Anwendung verwenden möchten.

    Sie können eine der Add unterstützt Firebase Produkte auf Ihrem Android - App.

    Für ein optimales Benutzererlebnis mit Firebase Cloud Messaging, empfehlen wir Google Analytics ermöglicht in Ihrem Projekt. Auch als Teil der Einrichtung Analytics, müssen Sie die Firebase SDK für Analytics in Ihrer App hinzuzufügen.

    Analytics aktiviert

    dependencies {
      // ...
    // Add the Firebase SDK for Google Analytics implementation 'com.google.firebase:firebase-analytics:17.4.4'
    // Add the SDK for Firebase Cloud Messaging implementation 'com.google.firebase:firebase-messaging:20.2.4'
    // Getting a "Could not find" error? Make sure that you've added // Google's Maven repository to your root-level build.gradle file }

    Analytics nicht aktiviert

    dependencies {
      // ...
    // Add the SDK for Firebase Cloud Messaging implementation 'com.google.firebase:firebase-messaging:20.2.4'
    // Getting a "Could not find" error? Make sure that you've added // Google's Maven repository to your root-level build.gradle file }
  2. Synchronisieren Sie Ihre App, um sicherzustellen, dass alle Abhängigkeiten, die notwendigen Versionen haben.

  3. Wenn Sie Analytics hinzugefügt, führen Sie Ihre App - Bestätigung auf Firebase zu senden , dass Sie erfolgreich Firebase integriert haben. Andernfalls können Sie den Überprüfungsschritt überspringen.

    Ihr Gerät meldet die Firebase Überprüfung angezeigt werden, dass die Initialisierung abgeschlossen ist. Wenn Sie Ihre App auf einem Emulator laufen den Netzwerkzugriff hat, die Firebase Konsole benachrichtigt Sie , dass Ihre App - Verbindung abgeschlossen ist .

Bearbeiten Sie Ihre App-Manifest

Fügen Sie die folgende zu Ihren App manifestieren:

  • Ein Dienst, der sich FirebaseMessagingService . Dies ist erforderlich, wenn Sie eine Nachricht Handhabung über Empfang von Benachrichtigungen auf Apps im Hintergrund tun wollen. Zum Empfang von Benachrichtigungen in dem Vordergrund Apps, um Nutzdaten zu erhalten, um Upstream-Nachrichten zu senden, und so weiter, müssen Sie diesen Service erweitern.
  • <service
        android:name=".java.MyFirebaseMessagingService"
        android:exported="false">
        <intent-filter>
            <action android:name="com.google.firebase.MESSAGING_EVENT" />
        </intent-filter>
    </service>
  • (Optional) Im Rahmen der Anwendungskomponente Metadatenelement eine Standardbenachrichtigungssymbol und Farbe einzustellen. Android verwendet diesen Wert, wenn eingehende Nachrichten nicht explizit Set-Symbol oder Farbe.
  • <!-- Set custom default icon. This is used when no icon is set for incoming notification messages.
         See README(https://goo.gl/l4GJaQ) for more. -->
    <meta-data
        android:name="com.google.firebase.messaging.default_notification_icon"
        android:resource="@drawable/ic_stat_ic_notification" />
    <!-- Set color used with incoming notification messages. This is used when no color is set for the incoming
         notification message. See README(https://goo.gl/6BKBk7) for more. -->
    <meta-data
        android:name="com.google.firebase.messaging.default_notification_color"
        android:resource="@color/colorAccent" />
  • (Optional) Android 8.0 (API - Ebene 26) und höher, Benachrichtigungskanäle werden unterstützt und empfohlen. FCM stellt eine Standardbenachrichtigungskanal mit Grundeinstellungen. Wenn Sie es vorziehen erstellen Sie Ihre eigenen Standardkanal zu verwenden, Satz default_notification_channel_id auf die ID des Objekts Benachrichtigungskanal , wie gezeigt; FCM diesen Wert verwenden, wenn eingehende Nachrichten nicht explizit einen Benachrichtigungskanal gesetzt. Um mehr zu erfahren, siehe Benachrichtigungskanäle verwalten .
  • <meta-data
        android:name="com.google.firebase.messaging.default_notification_channel_id"
        android:value="@string/default_notification_channel_id" />

Besuchen Sie das Gerät Registrierungstoken

Bei der ersten Inbetriebnahme Ihrer App generiert das FCM SDK eine Registrierung für die Client-Anwendung Instanz Token. Wenn Sie einzelne Geräte oder Gerätegruppen erstellen ausrichten möchten, müssen Sie dieses Token für den Zugriff durch die Erweiterung FirebaseMessagingService und zwingende onNewToken .

In diesem Abschnitt wird beschrieben, wie das Token abrufen und Änderungen an den Token zu überwachen. Da das Token nach der Erstinbetriebnahme gedreht werden kann, wird dringend die neuesten aktualisierten Registrierungstoken abzurufen empfohlen.

Die Registrierungstoken kann sich ändern, wenn:

  • Die App löscht Instanz-ID
  • Die App ist auf ein neues Gerät gestellt
  • Der Benutzer deinstalliert / neu installieren Sie die App
  • Der Benutzer löscht App-Daten.

Rufen Sie die aktuellen Registrierungstoken

Wenn Sie das aktuelle Token abrufen müssen, rufen FirebaseInstanceId.getInstance().getInstanceId() :

Java

FirebaseInstanceId.getInstance().getInstanceId()
        .addOnCompleteListener(new OnCompleteListener<InstanceIdResult>() {
            @Override
            public void onComplete(@NonNull Task<InstanceIdResult> task) {
                if (!task.isSuccessful()) {
                    Log.w(TAG, "getInstanceId failed", task.getException());
                    return;
                }

                // Get new Instance ID token
                String token = task.getResult().getToken();

                // 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

FirebaseInstanceId.getInstance().instanceId
        .addOnCompleteListener(OnCompleteListener { task ->
            if (!task.isSuccessful) {
                Log.w(TAG, "getInstanceId failed", task.exception)
                return@OnCompleteListener
            }

            // Get new Instance ID token
            val token = task.result?.token

            // Log and toast
            val msg = getString(R.string.msg_token_fmt, token)
            Log.d(TAG, msg)
            Toast.makeText(baseContext, msg, Toast.LENGTH_SHORT).show()
        })

Monitor-Token Generation

Die onNewToken Rückruf ausgelöst wird, wenn ein neues Token erzeugt wird.

Java

/**
 * Called if InstanceID token is updated. This may occur if the security of
 * the previous token had been compromised. Note that this is called when the InstanceID token
 * is initially generated so this is where you would retrieve the token.
 */
@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
    // Instance ID token to your app server.
    sendRegistrationToServer(token);
}

Kotlin + KTX

/**
 * Called if InstanceID token is updated. This may occur if the security of
 * the previous token had been compromised. Note that this is called when the InstanceID 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
    // Instance ID token to your app server.
    sendRegistrationToServer(token)
}

Nachdem Sie das Token erhalten haben, können Sie es zu Ihrem App-Server senden und speichern sie Ihre bevorzugte Methode. Siehe die Instanz - ID - API - Referenz für weitere Einzelheiten über die API.

Überprüfen Sie für Google Play-Dienste

Apps, die immer auf der Play Services SDK verlassen sollte das Gerät für einen kompatiblen Google Play-Dienste APK überprüfen, bevor Google Play-Dienste-Funktionen zugreifen. Es wird empfohlen , diese an zwei Stellen zu tun: in der Haupttätigkeit des onCreate() Methode, und in seiner onResume() Methode. Die Check - in onCreate() stellt sicher , dass der App nicht ohne eine erfolgreiche Prüfung verwendet werden. Die Überprüfung in onResume() stellt sicher , dass , wenn der Benutzer kehrt zu dem laufenden app durch andere Mittel, wie beispielsweise durch die Zurück - Taste, wird die Prüfung noch durchgeführt.

Wenn das Gerät nicht eine kompatible Version von Google Play - Dienste verfügt, können Sie Ihre App aufrufen GoogleApiAvailability.makeGooglePlayServicesAvailable() Benutzern zu ermöglichen , Google Play - Dienste aus dem Play Store zum Download bereit .

Prevent Auto Initialisierung

Feuerbasis erzeugt eine Instanz-ID, die FCM verwendet eine Registrierungstoken und Analytics verwendet für die Datenerfassung zu erzeugen. Wenn eine Instanz-ID erzeugt wird, wird die Bibliothek der Kennung und Konfigurationsdaten laden Firebase. Wenn Sie es vorziehen Instanz - ID automatische Generierung, deaktivieren Sie die automatische Initialisierung für FCM und Analytics zu verhindern (Sie müssen beide deaktivieren) , indem Sie diese Metadatenwerte zu Ihrem Hinzufügen AndroidManifest.xml :

<meta-data
    android:name="firebase_messaging_auto_init_enabled"
    android:value="false" />
<meta-data
    android:name="firebase_analytics_collection_enabled"
    android:value="false" />

So aktivieren Sie FCM, machen einen Laufzeitaufruf:

Java

FirebaseMessaging.getInstance().setAutoInitEnabled(true);

Kotlin + KTX

FirebaseMessaging.getInstance().isAutoInitEnabled = true

Dieser Wert verharrt über App neu gestartet wird einmal eingestellt.

Nächste Schritte

Nachdem die Client - Anwendung eingerichtet ist, sind Sie Downstream - Nachrichten mit dem startbereit zu senden Benachrichtigungen Komponisten . Diese Funktionalität wird in der gezeigten quickstart Probe , die Sie herunterladen können, laufen, und zu überprüfen.

Um andere, fortschrittlichere Verhalten Ihrer App können Sie eine Intent-Filter deklarieren und eine Aktivität zu reagieren auf eingehende Nachrichten implementieren. Einzelheiten dazu finden Sie die Führungen für Nachrichten von einem App-Server zu senden:

Denken Sie daran , dass die Vorteile dieser Funktionen zu nutzen, benötigen Sie einen Server - Implementierung und die Server - procotols (HTTP oder XMPP) oder eine Implementierung des Admin SDK .