Invia un messaggio di prova a un'app in background

Per iniziare con FCM, costruire fuori il caso d'uso più semplice: l'invio di un messaggio di notifica di prova dal compositore notifiche a un dispositivo di sviluppo quando l'applicazione è in background sul dispositivo. Questa pagina elenca tutti i passi per raggiungere questo obiettivo, Dall'installazione alla verifica - si può coprire passaggi che è già completato se è stato impostato un app client Android per FCM.

Configura l'SDK

Questa sezione tratta le attività che potresti aver completato se hai già abilitato altre funzionalità di Firebase per la tua app.

Prima di iniziare

  • Installare o aggiornare Android Studio alla sua ultima versione.

  • Assicurati che il tuo progetto soddisfi questi requisiti:

    • Mira al livello API 16 (Jelly Bean) o superiore
    • Utilizza Android 4.1 o versioni successive
    • Utilizza Jetpack (AndroidX) , che comprende soddisfare questi requisiti di versione:
      • com.android.tools.build:gradle V3.2.1 o successivo
      • compileSdkVersion 28 o successivo
  • Configurare un dispositivo fisico o utilizzare un emulatore per eseguire la vostra applicazione.
    Si noti che Firebase SDK con una dipendenza da Google Play Services richiedere al dispositivo o emulatore di avere Google Play Services installati.

  • Accedi al Firebase utilizzando il tuo account Google.

Se non si dispone già di un progetto Android e volete solo provare un prodotto Firebase, è possibile scaricare uno dei nostri esempi rapidi .

Crea un progetto Firebase

Prima di poter aggiungere Firebase alla tua app Android, devi creare un progetto Firebase per connetterti alla tua app Android. Visita Capire Firebase progetti per saperne di più su progetti Firebase.

Registra la tua app con Firebase

Per utilizzare Firebase nella tua app Android, devi registrare la tua app con il tuo progetto Firebase. La registrazione della tua app viene spesso chiamata "aggiunta" della tua app al tuo progetto.

  1. Vai alla console Firebase .

  2. Al centro della pagina panoramica del progetto, fare clic sull'icona di Android ( ) o aggiungere app per lanciare il flusso di lavoro di installazione.

  3. Inserire il nome del pacchetto della tua app nel campo nome del pacchetto Android.

  4. (Facoltativo) Immettere altre informazioni app: App nickname e Debug firma certificato SHA-1.

  5. Fare clic su Registra app.

Aggiungi un file di configurazione Firebase

  1. Aggiungi il file di configurazione di Firebase Android alla tua app:

    1. Fare clic su Download google-services.json per ottenere il file di configurazione Firebase Android ( google-services.json ).

    2. Sposta il tuo file di configurazione nella directory del modulo (a livello di app) della tua app.

  2. Per abilitare Firebase prodotti nella vostra app, aggiungere i google-servizi plug ai file Gradle.

    1. In root-level (a livello di progetto) di file Gradle ( build.gradle ), aggiungere le regole per includere il plug-in di Google Servizi Gradle. Verifica di avere anche il repository Maven di Google.

      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. Nel modulo (a livello di app) File Gradle (di solito app/build.gradle ), applicare il plug-in di Google Servizi Gradle:

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

Aggiungi gli SDK Firebase alla tua app

  1. Utilizzando la Firebase Android BoM , dichiarare la dipendenza per la libreria Firebase Nuvola Messaging Android nel modulo (a livello di app) File Gradle (di solito app/build.gradle ).

    Per un'esperienza ottimale con Firebase nube di messaggistica, si consiglia consentendo di Google Analytics nel progetto Firebase e aggiungendo il Firebase SDK per Google Analytics per la vostra applicazione.

    Giava

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

    Usando il Firebase Android BoM , la vostra applicazione sarà sempre utilizzare versioni compatibili delle librerie Firebase Android.

    (Alternativa) Dichiarare Firebase dipendenze delle librerie senza utilizzare la distinta

    Se scegli di non utilizzare Firebase BoM, devi specificare ogni versione della libreria Firebase nella relativa riga di dipendenza.

    Si noti che se si utilizzano più librerie Firebase nella vostra app, ti consigliamo di utilizzare la distinta di gestire versioni della libreria, che assicura che tutte le versioni sono compatibili.

    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:22.0.0'
        implementation 'com.google.firebase:firebase-analytics:19.0.1'
    }
    

    Kotlin+KTX

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

    Usando il Firebase Android BoM , la vostra applicazione sarà sempre utilizzare versioni compatibili delle librerie Firebase Android.

    (Alternativa) Dichiarare Firebase dipendenze delle librerie senza utilizzare la distinta

    Se scegli di non utilizzare Firebase BoM, devi specificare ogni versione della libreria Firebase nella relativa riga di dipendenza.

    Si noti che se si utilizzano più librerie Firebase nella vostra app, ti consigliamo di utilizzare la distinta di gestire versioni della libreria, che assicura che tutte le versioni sono compatibili.

    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:22.0.0'
        implementation 'com.google.firebase:firebase-analytics-ktx:19.0.1'
    }
    

  2. Sincronizza la tua app per assicurarti che tutte le dipendenze abbiano le versioni necessarie.

Accedi al token di registrazione

Per inviare un messaggio a un dispositivo specifico, devi conoscere il token di registrazione di quel dispositivo. Poiché dovrai inserire il token in un campo nella console delle notifiche per completare questo tutorial, assicurati di copiare il token o di archiviarlo in modo sicuro dopo averlo recuperato.

All'avvio iniziale dell'app, l'SDK di FCM genera un token di registrazione per l'istanza dell'app client. Se si vuole indirizzare singoli dispositivi o creare gruppi di dispositivi, è necessario accedere a questo token estendendo FirebaseMessagingService e ridefinendo onNewToken .

Questa sezione descrive come recuperare il token e come monitorare le modifiche al token. Poiché il token potrebbe essere ruotato dopo l'avvio iniziale, si consiglia vivamente di recuperare l'ultimo token di registrazione aggiornato.

Il token di registrazione può cambiare quando:

  • L'app viene ripristinata su un nuovo dispositivo
  • L'utente disinstalla/reinstalla l'app
  • L'utente cancella i dati dell'app.

Recupera il token di registrazione corrente

Quando è necessario recuperare il token corrente, chiamare FirebaseMessaging.getInstance().getToken() :

Giava

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

Monitora la generazione di token

I onNewToken incendi ripetuta ogni volta che viene generato un nuovo token.

Giava

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

Dopo aver ottenuto il token, puoi inviarlo al server dell'app e archiviarlo utilizzando il metodo preferito.

Invia un messaggio di notifica di prova

  1. Installa ed esegui l'app sul dispositivo di destinazione.

  2. Assicurati che l'app sia in background sul dispositivo.

  3. Aprire il compositore Notifiche e selezionare Nuovo notifica.

  4. Inserisci il testo del messaggio.

  5. Selezionare Invia messaggio di prova.

  6. Nel campo Aggiungi un token di registrazione FCM, immettere la registrazione di token si è ottenuto in una sezione precedente di questa guida.

  7. Fare clic su test

Dopo aver fatto clic di prova, il dispositivo client mirata (con l'applicazione in background) dovrebbe ricevere la notifica nel sistema di notifiche della barra.

Per spaccato il recapito di messaggi per la vostra applicazione, vedere la dashboard di reporting FCM , che registra il numero di messaggi inviati e aperto su dispositivi iOS e Android, insieme ai dati di "impressioni" (notifiche visti dagli utenti) per Android apps.

Prossimi passi

Invia messaggi alle app in primo piano

Una volta che hai inviato con successo i messaggi di notifica, mentre la vostra applicazione è in background, vedi ricevere messaggi in un App Android per iniziare l'invio di applicazioni job in primo piano.

Vai oltre i messaggi di notifica

Per andare oltre i messaggi di notifica e aggiungere altri comportamenti più avanzati alla tua app, vedi: