Per iniziare a utilizzare FCM, crea il caso d'uso più semplice: invia un messaggio di notifica di test dal Editor di notifiche a un dispositivo di sviluppo quando l'app è in background sul dispositivo. Questa pagina elenca tutti i passaggi da seguire, dalla configurazione alla verifica. Potrebbero essere inclusi passaggi che hai già completato se hai configurato un'app client per 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
Installa o aggiorna Android Studio all'ultima versione.
Assicurati che il tuo progetto soddisfi questi requisiti (tieni presente che alcuni prodotti potrebbero avere requisiti più stringenti):
- Hanno come target il livello API 21 (Lollipop) o versioni successive
- Utilizza Android 5.0 o versioni successive
- Utilizza
Jetpack (AndroidX),
che include il rispetto di questi requisiti di versione:
com.android.tools.build:gradle
v7.3.0 o successivecompileSdkVersion
28 o versioni successive
Configura un dispositivo fisico o utilizza 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 con il tuo Account Google.
Se non hai ancora un progetto Android e vuoi 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 per Android, devi creare un progetto Firebase per connetterti all'app. Per saperne di più sui progetti Firebase, consulta Informazioni sui progetti Firebase.
Creare un progetto Firebase
-
Nella console Firebase, fai clic su Aggiungi progetto.
-
Per aggiungere risorse Firebase a un progetto Google Cloud esistente, inserisci il nome del progetto o selezionalo dal menu a discesa.
-
Per creare un nuovo progetto, inserisci il nome desiderato. Se vuoi, puoi anche modificare l'ID progetto visualizzato sotto il nome del progetto.
-
-
Se richiesto, leggi e accetta i Termini di Firebase.
-
Fai clic su Continua.
-
(Facoltativo) Configura Google Analytics per il tuo progetto, in modo da poter usufruire di un'esperienza ottimale con uno dei seguenti prodotti Firebase:
Seleziona un account Google Analytics esistente o creane uno nuovo.
Se crei un nuovo account, seleziona la località dei report Analytics, quindi accetta le impostazioni di condivisione dei dati e i termini di Google Analytics per il tuo progetto.
-
Fai clic su Crea progetto (o Aggiungi Firebase, se utilizzi un progetto Google Cloud esistente).
Firebase esegue automaticamente il provisioning delle risorse per il tuo progetto Firebase. Al termine della procedura, nella console Firebase verrà visualizzata la pagina Panoramica del progetto Firebase.
Registra la tua app con Firebase
Per utilizzare Firebase nella tua app per Android, devi registrare l'app con il tuo progetto Firebase. La registrazione dell'app è spesso chiamata "aggiunta" dell'app al progetto.
Vai alla console Firebase.
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.Inserisci il nome del pacchetto dell'app nel campo Nome del pacchetto Android.
Che cos'è un nome del pacchetto e dove trovarlo?
Un nome del pacchetto identifica in modo univoco la tua app sul dispositivo e nel Google Play Store.
Un nome pacchetto viene spesso definito ID applicazione.
Trova il nome del pacchetto della tua app nel file Gradle del modulo (a livello di app), solitamente
app/build.gradle
(nome del pacchetto di esempio:com.yourcompany.yourproject
).Tieni presente che il valore del nome del pacchetto è sensibile alle maiuscole e non può essere modificato per questa app Firebase per Android dopo la registrazione al progetto Firebase.
(Facoltativo) Inserisci altre informazioni sull'app: Nickname dell'app e Certificato SHA-1 per la firma di debug.
Come vengono utilizzati il nickname dell'app e il certificato SHA-1 per la firma di debug in Firebase?
Nickname dell'app: un identificatore interno di praticità visibile solo per te nella console Firebase
Certificato SHA-1 per la firma di debug: Firebase Authentication (se utilizzi Accedi con Google o Accedi con il numero di telefono) e Firebase Dynamic Links richiedono un hash SHA-1.
Fai clic su Registra app.
Aggiungi un file di configurazione di Firebase
Scarica e aggiungi il file di configurazione di Firebase per Android (
) alla tua app:google-services.json Fai clic su Scarica google-services.json per ottenere il file di configurazione di Firebase per Android.
Sposta il file di configurazione nella directory principale del modulo (a livello di app) della tua app.
Cosa devi sapere su questo file di configurazione?
Il file di configurazione di Firebase contiene identificatori univoci, ma non segreti, per il tuo progetto. Per scoprire di più su questo file di configurazione, consulta Informazioni sui progetti Firebase.
Puoi scaricare di nuovo il file di configurazione di Firebase in qualsiasi momento.
Assicurati che al nome del file di configurazione non vengano aggiunti caratteri aggiuntivi, come
(2)
.
Per rendere accessibili ai valori nel file di configurazione
gli SDK Firebase, è necessario il plug-in Gradle dei servizi Google (google-services.json google-services
).Nel file Gradle a livello di directory principale (a livello di progetto) (
<project>/build.gradle.kts
o<project>/build.gradle
), aggiungi il plug-in dei servizi Google come dipendenza: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 }
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 }
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:plugins { id("com.android.application") // Add the Google services Gradle plugin id("com.google.gms.google-services") // ... }
plugins { id 'com.android.application' // Add the Google services Gradle plugin id 'com.google.gms.google-services' // ... }
Aggiungere gli SDK Firebase all'app
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 la versione della libreria.Per un'esperienza ottimale con Firebase Cloud Messaging, ti consigliamo di attivare Google Analytics nel tuo progetto Firebase e di aggiungere l'SDK Firebase per Google Analytics alla tua app.
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:33.9.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") }
Con Firebase Android BoM, la tua app utilizzerà sempre versioni compatibili delle librerie Firebase per Android.
Cerchi un modulo della libreria specifico per Kotlin? A partire da ottobre 2023 (Firebase BoM 32.5.0), sia gli sviluppatori Kotlin che Java possono fare affidamento sul modulo della libreria principale (per maggiori dettagli, consulta le Domande frequenti su questa iniziativa).(Alternativa) Aggiungi le dipendenze della libreria Firebase senza utilizzare il file BoM
Se scegli di non utilizzare Firebase BoM, devi specificare ogni versione della libreria Firebase nella riga 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.1.0") implementation("com.google.firebase:firebase-analytics:22.2.0") }
Sincronizza il tuo progetto Android con i file Gradle.
Ricevi un errore di compilazione relativo al supporto di invoke-custom e all'attivazione della desugaring? Ecco come risolvere il problema.
Le build di Gradle che utilizzano il plug-in Android per Gradle (AGP) 4.2 o versioni precedenti devono attivare il supporto di Java 8. In caso contrario, questi progetti Android generano un errore di compilazione quando viene aggiunto un SDK Firebase.
Per risolvere questo errore di compilazione, puoi seguire una delle due opzioni:
- Aggiungi il valore
compileOptions
elencato nel messaggio di errore al filebuild.gradle.kts
obuild.gradle
a livello di app. - Aumenta
minSdk
per il tuo progetto Android a 26 o versioni successive.
Scopri di più su questo errore di compilazione in queste domande frequenti.
- Aggiungi il valore
Accedere al token di registrazione
Per inviare un messaggio a un dispositivo specifico, devi conoscere il token di registrazione del dispositivo. Poiché dovrai inserire il token in un campo della Console delle notifiche per completare questo tutorial, assicurati di copiarlo o di memorizzarlo in modo sicuro dopo averlo recuperato.
All'avvio iniziale dell'app, l'SDK FCM genera un token di registrazione per l'istanza dell'app client. Se vuoi scegliere come target singoli dispositivi o creare gruppi di dispositivi, devi accedere a questo token estendendo
FirebaseMessagingService
e sostituendo 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, ti consigliamo 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()
:
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() })
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 dei token
Il callback onNewToken
viene attivato ogni volta che viene generato un nuovo token.
/** * 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) }
/** * 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 server dell'app e archiviarlo utilizzando il metodo che preferisci.
Invia un messaggio di notifica di prova
Installa ed esegui l'app sul dispositivo di destinazione. Sui dispositivi Apple, dovrai accettare la richiesta di autorizzazione per ricevere notifiche da remoto.
Assicurati che l'app sia in background sul dispositivo.
Nella console Firebase, apri la pagina Messaggistica.
Se è il tuo primo messaggio, seleziona Crea la tua prima campagna.
- Seleziona Messaggi di notifica Firebase e Crea.
In caso contrario, nella scheda Campagne, seleziona Nuova campagna e poi Notifiche.
Inserisci il testo del messaggio. Tutti gli altri campi sono facoltativi.
Seleziona Invia messaggio di prova dal riquadro a destra.
Nel campo Aggiungi un token di registrazione FCM, inserisci il token di registrazione ottenuto in una sezione precedente di questa guida.
Seleziona Testa.
Dopo aver selezionato Test, il dispositivo client di destinazione (con l'app in background) dovrebbe ricevere la notifica.
Per informazioni sull'invio di messaggi alla tua app, consulta la FCMdashboard dei report, che registra il numero di messaggi inviati e aperti su dispositivi Apple e Android, nonché i dati relativi alle "impressioni" (notifiche visualizzate dagli utenti) per le app per Android.
Passaggi successivi
Inviare messaggi alle app in primo piano
Dopo aver inviato correttamente i messaggi di notifica mentre l'app è in background, consulta Ricevere messaggi in un'app per Android per iniziare a inviarli alle app in primo piano.
Andare oltre i messaggi di notifica
Per andare oltre i messaggi di notifica e aggiungere un altro comportamento più avanzato alla tua app, consulta: