Invia un messaggio di prova a un'app in background

Per iniziare con FCM, crea il caso d'uso più semplice: inviare un messaggio di notifica di prova dal compositore di notifiche a un dispositivo di sviluppo quando l'app è in background sul dispositivo. Questa pagina elenca tutti i passaggi per raggiungere questo obiettivo, dall'installazione alla verifica: potrebbe coprire i passaggi che hai già completato se hai configurato un'app client Android per FCM.

Configura l'SDK

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

Prima di iniziare

  • Installa o aggiorna Android Studio all'ultima versione.

  • Assicurati che il tuo progetto soddisfi questi requisiti:

    • Mira al livello API 19 (KitKat) o superiore
    • Utilizza Android 4.4 o versioni successive
    • Utilizza Jetpack (AndroidX) , che include il rispetto di questi requisiti di versione:
      • com.android.tools.build:gradle v3.2.1 o successivo
      • compileSdkVersion 28 o successiva
  • Configura un dispositivo fisico o usa un emulatore per eseguire la tua app.
    Tieni presente che gli SDK Firebase con una dipendenza da Google Play Services richiedono che sul dispositivo o sull'emulatore sia installato Google Play Services.

  • Accedi a Firebase utilizzando il tuo account Google.

Se non disponi già di un progetto Android e desideri solo provare un prodotto Firebase, puoi scaricare uno dei nostri esempi di avvio rapido .

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 i progetti Firebase per saperne di più sui 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 di Firebase .

  2. Al centro della pagina della panoramica del progetto, fai clic sull'icona Android ( ) o su Aggiungi app per avviare il flusso di lavoro di configurazione.

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

  4. (Facoltativo) Inserisci altre informazioni sull'app: nickname dell'app e certificato di firma del debug SHA-1 .

  5. Fai clic su Registra app .

Aggiungi un file di configurazione Firebase

  1. Scarica e quindi aggiungi il file di configurazione Android di Firebase ( google-services.json ) alla tua app:

    1. Fai clic su Scarica google-services.json per ottenere il file di configurazione Android di Firebase.

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

  2. Per rendere i valori nel file di configurazione google-services.json accessibili agli SDK Firebase, è necessario il plug-in Gradle dei servizi Google ( google-services ).

    1. Nel tuo file Gradle a livello di root (a livello di progetto) ( <project>/build.gradle.kts o <project>/build.gradle ), aggiungi il plug-in dei servizi Google come dipendenza:

      Kotlin

      plugins {
        id("com.android.application") version "7.2.0" apply false
        // ...
      
        // Add the dependency for the Google services Gradle plugin
        id("com.google.gms.google-services") version "4.3.15" apply false
      }
      

      Groovy

      plugins {
        id 'com.android.application' version '7.2.0' apply false
        // ...
      
        // Add the dependency for the Google services Gradle plugin
        id 'com.google.gms.google-services' version '4.3.15' apply false
      }
      
    2. Nel file Gradle del tuo modulo (a livello di app) (di solito <project>/<app-module>/build.gradle.kts o <project>/<app-module>/build.gradle ), aggiungi il plug-in dei servizi Google:

      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'
        // ...
      }
      

Aggiungi SDK Firebase alla tua app

  1. Nel file Gradle del tuo modulo (a livello di app) (di solito <project>/<app-module>/build.gradle.kts o <project>/<app-module>/build.gradle ), aggiungi la dipendenza per Firebase Cloud Libreria di messaggistica Android. Ti consigliamo di utilizzare la distinta base Android di Firebase per controllare il controllo delle versioni della libreria.

    Per un'esperienza ottimale con Firebase Cloud Messaging, ti consigliamo di abilitare Google Analytics nel tuo progetto Firebase e di aggiungere l'SDK Firebase per Google Analytics alla tua app.

    Kotlin+KTX

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

    Utilizzando Firebase Android BoM , la tua app utilizzerà sempre versioni compatibili delle librerie Firebase Android.

    (Alternativa) Aggiungi le dipendenze della libreria Firebase senza utilizzare la distinta base

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

    Tieni presente che se utilizzi più librerie Firebase nella tua app, ti consigliamo vivamente di utilizzare la distinta base per gestire le versioni della libreria, che garantisce che tutte le versioni siano compatibili.

    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-ktx:23.2.1")
        implementation("com.google.firebase:firebase-analytics-ktx:21.3.0")
    }
    

    Java

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

    Utilizzando Firebase Android BoM , la tua app utilizzerà sempre versioni compatibili delle librerie Firebase Android.

    (Alternativa) Aggiungi le dipendenze della libreria Firebase senza utilizzare la distinta base

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

    Tieni presente che se utilizzi più librerie Firebase nella tua app, ti consigliamo vivamente di utilizzare la distinta base per gestire le versioni della libreria, che garantisce che tutte le versioni siano compatibili.

    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:23.2.1")
        implementation("com.google.firebase:firebase-analytics:21.3.0")
    }
    

  2. Sincronizza il tuo progetto Android con i file Gradle.

Accedi al token di registrazione

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

All'avvio iniziale della tua app, FCM SDK genera un token di registrazione per l'istanza dell'app client. Se desideri scegliere come target singoli dispositivi o creare gruppi di dispositivi, dovrai accedere a questo token estendendo FirebaseMessagingService ed eseguendo l'override 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 devi recuperare il token corrente, chiama 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();
        }
    });

Monitorare la generazione di token

Il callback onNewToken si attiva ogni volta che viene generato un nuovo 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)
}

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

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

Invia un messaggio di notifica di prova

  1. Installa ed esegui l'app sul dispositivo di destinazione. Sui dispositivi Apple, dovrai accettare la richiesta di autorizzazione per ricevere notifiche remote.

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

  3. Nella console Firebase, apri la pagina Messaggi .

  4. Se questo è il tuo primo messaggio, seleziona Crea la tua prima campagna .

    1. Seleziona Messaggi di notifica Firebase e seleziona Crea .
  5. Altrimenti, nella scheda Campagne , seleziona Nuova campagna e poi Notifiche .

  6. Inserisci il testo del messaggio. Tutti gli altri campi sono facoltativi.

  7. Selezionare Invia messaggio di prova dal riquadro a destra.

  8. Nel campo etichettato Aggiungi un token di registrazione FCM , inserisci il token di registrazione che hai ottenuto in una sezione precedente di questa guida.

  9. Seleziona Prova .

Dopo aver selezionato Test , il dispositivo client di destinazione (con l'app in background) dovrebbe ricevere la notifica.

Per informazioni sulla consegna dei messaggi alla tua app, consulta la dashboard dei rapporti FCM , che registra il numero di messaggi inviati e aperti su dispositivi Apple e Android, insieme ai dati per le "impressioni" (notifiche visualizzate dagli utenti) per le app Android.

Prossimi passi

Invia messaggi alle app in primo piano

Dopo aver inviato correttamente i messaggi di notifica mentre l'app è in background, vedi Ricevere messaggi in un'app Android per iniziare a inviare alle app 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: