Inviare un messaggio di prova a un'app in background

Per iniziare a usare FCM, crea il caso d'uso più semplice: inviare un messaggio di notifica di prova dal Notifiche Composer a un dispositivo di sviluppo quando l'app è in background sul dispositivo. In questa pagina sono elencati tutti i passaggi necessari per raggiungere questo obiettivo, dalla configurazione alla verifica. potrebbe riguardare passaggi già completati se Avere configurato un'app client Android. per FCM.

Configura l'SDK

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

Prima di iniziare

  • Installare o aggiornare Android Studio. all'ultima versione.

  • Assicurati che il tuo progetto soddisfi questi requisiti (tieni presente che alcuni prodotti potrebbero avere requisiti più stringenti):

    • Ha come target il livello API 19 (KitKat) o successiva
    • Utilizza Android 4.4 o versioni successive
    • Impieghi Jetpack (AndroidX) il che include il rispetto dei seguenti requisiti di versione:
      • com.android.tools.build:gradle 7.3.0 o versioni successive
      • compileSdkVersion 28 o versioni successive
  • Configura un dispositivo fisico o utilizza emulatore per esegui la tua app.
    Tieni presente che gli SDK Firebase con una dipendenza su Google Play di Google Cloud richiedono il dispositivo o per installare Google Play Services.

  • Accedi a Firebase utilizzando il tuo account .

Se non hai ancora un progetto Android e vuoi soltanto provare Firebase prodotto, puoi scaricare uno dei nostri esempi di guida rapida.

Crea un progetto Firebase

Prima di poter aggiungere Firebase alla tua app per Android, devi creare un progetto Firebase per connetterti all'app. Per saperne di più sui progetti Firebase, consulta Informazioni sui progetti Firebase.

Registra la tua app con Firebase

Per utilizzare Firebase nella tua app per Android, devi registrarla con il tuo progetto Firebase. La registrazione di un'app è spesso chiamata "aggiunta" la tua app su progetto.

  1. Vai alla console Firebase.

  2. Al centro della pagina di riepilogo 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 dell'app nel campo Nome pacchetto Android.

    di Gemini Advanced.
  4. (Facoltativo) Inserisci altre informazioni sull'app: Nickname app e Certificato di firma di debug SHA-1.

  5. Fai clic su Registra app.

Aggiungi un file di configurazione Firebase

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

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

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

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

    1. Nel file Gradle a livello principale (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.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. Nel file Gradle del 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'
        // ...
      }

Aggiungere gli SDK Firebase all'app

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

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

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

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

    (alternativa) Aggiungi dipendenze della libreria Firebase senza utilizzare il BoM

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

    Tieni presente che se nella tua app utilizzi più librerie Firebase, ti consigliamo vivamente di utilizzare BoM per gestire le versioni delle librerie, in modo da garantire la compatibilità di tutte le versioni.

    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")
    }
    Cerchi un modulo della libreria specifico per Kotlin? A partire da Ottobre 2023 (Firebase BoM 32.5.0), gli sviluppatori Kotlin e Java possono dipendono dal modulo principale della libreria (per i dettagli, consulta Domande frequenti su questa iniziativa).

  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 la token di registrazione. Poiché dovrai inserire il token in un campo della Console delle notifiche per completare questo tutorial; assicurati di copiare il token o conservarlo in modo sicuro dopo averlo recuperato.

All'avvio iniziale dell'app, l'SDK FCM genera una registrazione per l'istanza dell'app client. Se vuoi scegliere come target singoli dispositivi o per creare gruppi di dispositivi, per accedere a questo token devi FirebaseMessagingService e con override di onNewToken.

Questa sezione descrive come recuperare il token e monitorare le modifiche al token. Poiché il token può essere ruotato dopo il all'avvio, ti consigliamo vivamente di recuperare l'ultima registrazione aggiornata di accesso.

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 attuale

Quando devi recuperare il token attuale, richiama 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();
        }
    });

Monitora la generazione di token

Il callback onNewToken viene attivato 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 delle app e archiviare utilizzando il metodo che preferisci.

Invia un messaggio di notifica di prova

  1. Installa ed esegui l'app sul dispositivo di destinazione. Sui dispositivi Apple, è necessario per accettare la richiesta di autorizzazione a 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 primo messaggio, seleziona Crea il tuo primo messaggio campagna.

    1. Seleziona Messaggi di notifica Firebase e Crea.
  5. In caso contrario, nella scheda Campagne seleziona Nuova campagna. quindi Notifiche.

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

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

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

  9. Seleziona Testa.

Dopo aver selezionato Test, il dispositivo client target (con l'app in sullo sfondo) dovrebbe ricevere la notifica.

Per informazioni sulla consegna dei messaggi alla tua app, vedi dashboard dei report FCM, che registra le di messaggi inviati e aperti su dispositivi Apple e Android, insieme a dati per le "impressioni" (notifiche visualizzate dagli utenti) per le app Android.

Passaggi successivi

Invia messaggi alle app in primo piano

Dopo aver inviato correttamente messaggi di notifica mentre l'app è in sullo sfondo, vedi Ricevere messaggi in un'app per Android per iniziare a inviare messaggi ad app in primo piano.

Vai oltre i messaggi di notifica

Andare oltre i messaggi di notifica e aggiungere un comportamento più avanzato vedi: