1. Introduzione
Obiettivi
In questo codelab imparerai a instrumentare la tua app multipiattaforma in modo da poter trasmettere messaggi push a vari sottogruppi delle istanze dell'app utilizzando gli argomenti FCM.
Al termine, potrai sfruttare l'infrastruttura FCM per gestire questi sottogruppi e inviare messaggi push multicast.
Panoramica degli argomenti
Gli argomenti sono un modo supportato dall'infrastruttura FCM per raggiungere i sottogruppi delle istanze dell'app con i messaggi.
FCM fornisce le API per inviare messaggi e gestire le iscrizioni a questi argomenti. L'azione di associare e dissociare un'istanza dell'app all'argomento è chiamata rispettivamente sottoscrizione e annullamento della sottoscrizione
Gli argomenti devono essere utilizzati per i contenuti disponibili pubblicamente. Ad esempio, messaggi sugli aggiornamenti meteo. Se vuoi inviare messaggi sensibili per gli utenti, utilizza l'SDK Firebase Admin per trasmettere messaggi su più dispositivi.
Il multicast basato su argomenti è ottimizzato per la velocità effettiva.
Cosa imparerai a fare
- Come iscrivere (e annullare l'iscrizione) gli utenti agli argomenti da un'app mobile.
- Come inviare messaggi push multicast utilizzando gli argomenti.
- Come inviare messaggi a una combinazione di argomenti utilizzando le condizioni degli argomenti.
- Come gestire le iscrizioni agli argomenti lato server ed eseguire iscrizioni e annullamenti di iscrizioni collettivi.
Cosa creerai
- Un'app per Android che si iscrive/annulla l'iscrizione agli argomenti e riceve i messaggi quando vengono inviati agli argomenti.
- Un'integrazione lato server che utilizza l'SDK Firebase Admin, che verrà utilizzato per inviare messaggi di argomento tramite le API FCM.
Che cosa ti serve
- Un browser a tua scelta, ad esempio Chrome.
- IDE IntelliJ IDEA per lo sviluppo di applicazioni Java.
- Assicurati di attivare il supporto per Gradle durante l'installazione.
- Android Studio IDE per lo sviluppo di applicazioni per Android.
- Un dispositivo per eseguire l'applicazione Android. Una delle seguenti opzioni:
- L'emulatore Android. (Richiede la configurazione in Android Studio).
- Un dispositivo Android fisico collegato al computer e impostato sulla modalità sviluppatore.
- Un Account Google per creare e gestire il tuo progetto Firebase.
2. Configurazione
Ottieni il codice
Clona il repository GitHub dalla riga di comando:
git clone https://github.com/firebase/quickstart-android.git fcm-codelab
Il codice di esempio verrà clonato nella directory fcm-codelab
.
cd fcm-codelab
L'app iniziale per questo codelab si trova nella directory messaging
del ramo fcm-topics-codelab
. Per raggiungere il codice iniziale, segui questi passaggi. Contiene due directory: StockNewsApp
e StockNewsServer
. Il primo contiene l'app Android iniziale, mentre il secondo contiene il codice lato server iniziale.
git checkout fcm-topics-codelab cd messaging/fcm-topics-codelab/starter
La versione completata di questo codelab si trova nella directory messaging/fcm-topics-codelab/completed
.
Crea un progetto Firebase
- Accedi alla console Firebase utilizzando il tuo Account Google.
- Fai clic sul pulsante per creare un nuovo progetto, quindi inserisci un nome per il progetto (ad esempio
StockNews
).
- Fai clic su Continua.
- Se richiesto, leggi e accetta i termini di Firebase, quindi fai clic su Continua.
- (Facoltativo) Attiva l'assistenza AI nella console Firebase (denominata "Gemini in Firebase").
- Per questo codelab non hai bisogno di Google Analytics, quindi disattiva l'opzione Google Analytics.
- Fai clic su Crea progetto, attendi il provisioning del progetto, poi fai clic su Continua.
Complimenti! Hai appena creato il tuo progetto Firebase.
3. Configurazione dell'app Firebase specifica per la piattaforma
La maggior parte delle modifiche al codice necessarie per attivare il supporto di Firebase è già stata eseguita nel progetto su cui stai lavorando. Tuttavia, per aggiungere il supporto per le piattaforme mobile, devi:
- Registra la piattaforma che preferisci nel progetto Firebase
- Scarica il file di configurazione specifico della piattaforma e aggiungilo al codice.
Ai fini di questo codelab, aggiungeremo un'app Firebase per Android.
Configurare Android
- Nella console Firebase, seleziona Impostazioni progetto nella parte superiore della barra di navigazione a sinistra, nell'icona a forma di ingranaggio Impostazioni, e fai clic sull'icona Android in Le tue app nella pagina Generali.
Dovresti vedere la seguente finestra di dialogo :
- Il valore importante da fornire è il nome del pacchetto Android. Imposta il valore su
com.ticker.stocknews
.- Il nome del pacchetto fornito qui deve corrispondere a quello fornito in
AndroidManifest.xml
del codice iniziale StockNewsApp. Per individuarlo o modificarlo, segui questi passaggi:- Nella directory StockNewsApp, apri il file
app/src/main/AndroidManifest.xml
. - Nell'elemento
manifest
, trova il valore stringa dell'attributopackage
. Questo valore è il nome del pacchetto Android.
- Nella directory StockNewsApp, apri il file
- Il nome del pacchetto fornito qui deve corrispondere a quello fornito in
- Nella finestra di dialogo Firebase, incolla il nome del pacchetto copiato nel campo Nome pacchetto Android.
- Per questo codelab non è necessario il certificato di firma di debug SHA-1, perché questa app non verrà rilasciata. Lascia vuoto questo campo.
- Fai clic su Registra app.
- Continua nella console Firebase e segui le istruzioni per scaricare il file di configurazione
google-services.json
. - Puoi saltare i passaggi di configurazione rimanenti, poiché tutto il resto è già configurato nel codice dell'app iniziale. Troverai la tua app elencata nella pagina principale della console Firebase.
- Copia il file
google-services.json
(che hai appena scaricato) nella directorymessaging/fcm-topics-codelab/starter/StockNewsApp/app
.
4. Crea ed esegui la tua app
Ora puoi iniziare a lavorare alla tua app. Innanzitutto, crea ed esegui l'app.
Importare l'app iniziale
Avvia Android Studio e importa messaging/fcm-topics-codelab/starter/StockNewsApp
dalla directory del codice iniziale.
Una volta caricato il progetto, potresti anche visualizzare un avviso che indica che Git non sta monitorando tutte le modifiche locali. Puoi fare clic su "Ignora" o sulla "X" in alto a destra. Non verrà eseguito il push di alcuna modifica nel repository Git.
Nell'angolo in alto a sinistra della finestra del progetto, dovresti vedere un'immagine simile a quella riportata di seguito se ti trovi nella visualizzazione Android. Se ti trovi nella visualizzazione Progetto, dovrai espandere il progetto per visualizzare la stessa cosa.
Tieni presente che Android Studio potrebbe impiegare diversi secondi per compilare il progetto in background per la prima volta. Durante questo periodo, nella barra di stato in fondo ad Android Studio vedrai un indicatore di caricamento:
Ti consigliamo di attendere il completamento dell'operazione prima di apportare modifiche al codice. In questo modo, Android Studio potrà recuperare tutti i componenti necessari.
Inoltre, se viene visualizzato il messaggio "Ricaricare per applicare le modifiche alla lingua?" o un messaggio simile, seleziona "Sì".
Configurazione dell'emulatore
Se hai bisogno di aiuto per configurare un emulatore Android, consulta l'articolo Eseguire l'app.
Informazioni sul codice iniziale dell'app Android
- Il codice iniziale è un'app per Android leggera con funzionalità e UI minime.
- Una dipendenza dall'SDK firebase-messaging è già stata aggiunta al file
app/build.gradle
.
- In
AndroidManifest.xml
è già stato aggiunto un gestore di callbackMESSAGING_EVENT
.- Questo gestore,
StockNewsMessagingService.java
, estende la classeFirebaseMessagingService
, che fornisce varie funzionalità correlate a Firebase Cloud Messaging. Per saperne di più, consulta la documentazione di FirebaseMessagingService.
- La funzione
onNewToken
viene chiamata quando viene creato o aggiornato il token di registrazione FCM. Per ulteriori informazioni, consulta Monitorare la generazione di token. - La funzione
onMessageReceived
viene chiamata quando viene ricevuto un messaggio e l'app è in primo piano. Al momento, registra semplicemente il messaggio ricevuto.- Consulta Ricevere messaggi in un'app per Android per scoprire di più sulle differenze tra la gestione e la distribuzione dei messaggi in background e in primo piano.
- Questo gestore,
- Inoltre, in
AndroidManifest.xml
viene fornita anche una classe AndroidApplication
denominataStockNewsApplication
.- Questa classe sarà la prima a essere istanziata all'avvio dell'app.
- Nella funzione
onCreate
della classeStockNewsApplication
viene aggiunta una chiamata di creazione del token di registrazione FCM. Verrà generato un token di registrazione FCM valido e verrà registrato.
MainActivity.java
aggiungeRecyclerView
che mostra le scelte della categoria stock.SubscriptionAdapter.java
implementaRecyclerView.Adapter
, che disegna la schermata di selezione della categoria di scorte.- Ogni categoria di stock ha un nome e un pulsante di attivazione/disattivazione dell'abbonamento.
- La modifica del pulsante di attivazione/disattivazione dovrebbe generare una chiamata di iscrizione/annullamento dell'iscrizione a un argomento FCM.
- Implementerai queste chiamate nelle sezioni successive.
- La classe
model/StockCategories.java
contiene un elenco di tutte le categorie di stock e i relativi nomi degli argomenti.
Eseguire l'app iniziale
- Collega il dispositivo Android al computer o avvia un emulatore.
- Nella barra degli strumenti in alto, seleziona il dispositivo Android o l'emulatore di destinazione e premi il pulsante di esecuzione.
- L'interfaccia utente dell'app sarà simile alla seguente:
- L'app creerà un token di registrazione FCM e lo registrerà. Tuttavia, non cambierà nulla nell'interfaccia utente dell'app.
- Copia e salva il token di registrazione FCM, che verrà utilizzato nei passaggi successivi.
5. Inviare un messaggio di prova
Ora puoi inviare un messaggio di prova all'istanza dell'app che hai configurato nell'ultimo passaggio.
Importa il codice di avvio del server
Avvia IntelliJ IDEA e apri il progetto messaging/fcm-topics-codelab/starter/StockNewsServer
.
La visualizzazione del progetto nella barra di navigazione a sinistra dovrebbe essere simile alla seguente:
Tieni presente che la creazione del progetto da parte di IntelliJ IDEA potrebbe richiedere alcuni minuti, incluso il recupero delle dipendenze richieste.
Informazioni sul codice di avvio del server
- Il codice di avvio del server è un progetto Java basato su Gradle.
- Il file
build.gradle
ha già la dipendenza dall'SDK Firebase Admin. Questo SDK fornisce l'accesso a varie funzionalità di invio di messaggi FCM.
- Infine, esistono due classi:
FcmSender.java
: Questa lezione contiene i seguenti metodi di notazione:initFirebaseSDK
: inizializza l'SDK firebase-admin.sendMessageToFcmRegistrationToken
: invia un messaggio a un token di registrazione FCM.sendMessageToFcmTopic
: invia un messaggio a un argomento FCM.sendMessageToFcmTopicCondition
: invia un messaggio a una condizione dell'argomento FCM.
FcmSubscriptionManager.java
: questa classe contiene metodi che consentono di gestire gli abbonamenti agli argomenti dal lato server.initFirebaseSDK
: inizializza l'SDK firebase-admin.subscribeFcmRegistrationTokensToTopic
: iscrivi i token di registrazione FCM a un argomento FCM.unsubscribeFcmRegistrationTokensFromTopic
: annulla la registrazione di uno o più token di registrazione FCM da un argomento FCM.
Configurare il codice del server
- Innanzitutto, dobbiamo configurare un service account Firebase che consenta all'SDK firebase-admin di autorizzare le chiamate alle API FCM.
- Vai alla console Firebase, fai clic sull'icona a forma di ingranaggio accanto a Panoramica del progetto nella barra di navigazione a sinistra e seleziona Impostazioni progetto.
- Nella pagina delle impostazioni, seleziona Service account e fai clic su Crea service account.
- Ora fai clic sul pulsante Genera nuova chiave privata e inizierà il download automatico del file della chiave.
- Rinomina il file della chiave in
service-account.json
e copialo nella cartellamessaging/fcm-topics-codelab/starter/StockNewsServer/src/main/resources
. - Sia
FcmSender.java
cheFcmSubscriptionManager.java
caricano il fileservice-account.json
dal classpath utilizzando il seguente codice.
- Vai alla console Firebase, fai clic sull'icona a forma di ingranaggio accanto a Panoramica del progetto nella barra di navigazione a sinistra e seleziona Impostazioni progetto.
- A questo punto, il codice del server è pronto. Esegui Build -> Build Project dalla barra dei menu in alto.
Invio di un messaggio di prova
- In
FcmSender.java
individua la funzionesendMessageToFcmRegistrationToken
e inserisci il token di registrazione FCM che hai copiato dalla sezione Esegui l'app iniziale nel camporegistrationToken
. - Nella funzione
main
, rimuovi il commento solo dalla funzionesendMessageToFcmRegistrationToken
e fai clic su Esegui per eseguire il codice.- Osserva come il token di registrazione FCM viene impostato nel campo
Token
dell'oggettomessage
. - Inoltre, nota come abbiamo utilizzato l'API
send
dell'interfacciaFirebaseMessaging
.
- Osserva come il token di registrazione FCM viene impostato nel campo
- In questo modo, verrà inviato un messaggio all'istanza dell'app che hai configurato nel passaggio precedente.
- Quando l'istanza dell'app è in primo piano, dovresti visualizzare i contenuti del messaggio registrati.
- Quando l'istanza dell'app è in background, il messaggio viene visualizzato nella barra delle notifiche.
Ottimo, hai utilizzato l'SDK Firebase Admin per inviare messaggi a un'istanza dell'app. Scopri di più sull'utilizzo dell'SDK Firebase Admin nel tuo server.
6. Implementare l'iscrizione / l'annullamento dell'iscrizione agli argomenti
In questo passaggio implementerai le azioni di iscrizione e annullamento dell'iscrizione agli argomenti nel pulsante di attivazione/disattivazione della categoria Azioni dell'app per Android.
Quando un utente dell'app attiva o disattiva l'opzione per una determinata categoria di azioni, viene effettuata una chiamata per l'iscrizione o l'annullamento dell'iscrizione a un argomento.
Codice di revisione
- Vai alla classe
SubscriptionAdapter.java
nel codice dell'app per Android e individua la classeRecyclerViewViewHolder
.
- Il costruttore della classe configura un listener per l'attivazione/disattivazione dell'abbonamento utilizzando
setOnCheckedChangeListener
. - A seconda dell'attivazione/disattivazione dell'opzione, le azioni di iscrizione e annullamento dell'iscrizione vengono eseguite chiamando rispettivamente i metodi
subscribeToStockCategory
eunsubscribeFromStockCategory
. - Il metodo
setData
viene chiamato daonBindViewHolder
di RecyclerView Adapter per associare ViewHolder alla categoria di stock appropriata.
Implementare l'iscrizione agli argomenti
- Nel metodo
subscribeToStockCategory
, implementerai la chiamata all'APIsubscribeToTopic
dell'oggettoFirebaseMessaging
. Il codice potrebbe avere un aspetto simile al seguente:
void subscribeToStockCategory() { // Making call to FCM for subscribing to the topic for stockCategory FirebaseMessaging.getInstance().subscribeToTopic(stockCategory.getTopicName()).addOnSuccessListener( unused -> { // Subscribing action successful Log.i(TAG, "Subscribed to topic: " + stockCategory.getTopicName()); Toast.makeText(itemView.getContext(), "Subscribed to " + stockCategory.getCategoryName(), Toast.LENGTH_SHORT).show(); }); }
Implementare l'annullamento dell'iscrizione agli argomenti
- Analogamente, nella condizione else, implementerai la chiamata all'API
unsubscribeFromTopic
. Qualcosa del genere:
void unsubscribeFromStockCategory() { // Making call to FCM for unsubscribing from the topic for stockCategory FirebaseMessaging.getInstance().unsubscribeFromTopic(stockCategory.getTopicName()) .addOnSuccessListener(unused -> { // Unsubscribing action successful Log.i(TAG, "Unsubscribed from topic: " + stockCategory.getTopicName()); Toast.makeText(itemView.getContext(), "Unsubscribed from " + stockCategory.getCategoryName(), Toast.LENGTH_SHORT).show(); }); }
Proviamo
- Esegui l'app e attiva/disattiva le opzioni della categoria di azioni per eseguire le azioni Iscriviti e Annulla iscrizione. L'aspetto sarà simile al seguente:
Iscriviti | Annulla iscrizione |
7. Invio del primo messaggio dell'argomento
In questo passaggio implementerai il codice lato server per inviare un messaggio argomento FCM.
Implementare l'integrazione lato server per l'invio di messaggi all'argomento
- Nel codice del server, vai a
FcmSender.java
e individua il metodo denominatosendMessageToFcmTopic
.
- Nella prima riga, fornisci l'argomento FCM a cui vuoi inviare il messaggio.
- È una stringa nel formato:
/topics/<Topic Name>
. Ad esempio,/topics/Technology
.
- È una stringa nel formato:
- Nelle righe successive crea un nuovo oggetto
message
(simile a quello definito nella funzionesendMessageToFcmRegistrationToken
).- La differenza è che, anziché impostare il campo
Token
dell'oggettomessage
, imposterai il campoTopic
.
- La differenza è che, anziché impostare il campo
Message message = Message.builder() .putData("FOOTECH", "$1000") .setNotification( Notification.builder() .setTitle("Investor confidence in Tech Stocks growing") .setBody("Foo Tech leading the way in stock growth for Tech sector.") .build()) .setTopic(topicName) .build();
- Ora aggiungi la chiamata all'istanza
FirebaseMessaging
per inviare il messaggio (identica alla chiamata di invio effettuata nella funzionesendMessageToFcmRegistrationToken
).
FirebaseMessaging.getInstance().send(message);
- Infine, aggiorna la funzione
main
e attiva la chiamata solo alla funzionesendMessageToFcmTopic
.
Inviare un messaggio e convalidare la ricezione
- Prima di inviare il messaggio dell'argomento, assicurati che l'istanza dell'app sia iscritta all'argomento a cui vuoi inviare il messaggio.
- Per farlo, basta attivare/disattivare l'opzione corrispondente. Ad esempio:
- Ora puoi inviare il messaggio dell'argomento eseguendo la funzione
main
diFcmSender.java
. - Come prima, dovresti essere in grado di osservare la ricezione del messaggio nell'istanza dell'app.
- Istanza dell'app in primo piano
- Istanza di app in background
- Bonus: prova ad annullare l'iscrizione all'argomento a cui hai inviato il messaggio e a inviarlo di nuovo. Noterai che il messaggio non viene recapitato all'istanza dell'app.
8. Invio del primo messaggio di condizione dell'argomento
La funzionalità di condizione dell'argomento ti consente di inviare messaggi a una combinazione di argomenti, permettendoti di fornire una definizione del pubblico più espressiva.
Ad esempio, nella nostra app StockNews, valuta la possibilità di inviare messaggi a un gruppo di istanze dell'app che hanno sottoscritto argomenti relativi a tecnologia o automotive. Un caso del genere può verificarsi, ad esempio, se si verifica un evento degno di nota che coinvolge Waymo.
Gli argomenti ti consentono di esprimere la tua combinazione sotto forma di espressione booleana utilizzando i seguenti operatori
- && : AND logico. Ad esempio,
'Technology' in topics && 'Automotive' in topics
ha come target solo le istanze dell'app che hanno sottoscritto sia gli argomenti Tecnologia che Automobili. - || : OR logico. Ad esempio,
'Technology' in topics || 'Automotive' in topics
ha come target le istanze dell'app che hanno sottoscritto gli argomenti Tecnologia o Automobili. - () : Parentesi per il raggruppamento. Ad esempio,
'Technology' in topics && ('Automotive' in topics || 'Energy' in topics)
: ha come target solo le istanze dell'app che hanno eseguito l'iscrizione a Tecnologia e agli argomenti Automotive o Energia.
Scopri di più su come creare richieste di invio per utilizzare questa funzionalità.
Implementare l'integrazione lato server per l'invio del messaggio di condizione dell'argomento
- Nel codice del server, vai a
FcmSender.java
e individua il metodo denominatosendMessageToFcmTopicCondition
.
- Nella prima riga, per la variabile
topicCondition
, fornisci la condizione dell'argomento a cui vuoi inviare il messaggio. Puoi impostarlo su:'Technology' in topics && 'Automotive' in topics
. - Nelle righe successive, crea un nuovo oggetto
message
(simile a quello definito nella funzionesendMessageToFcmTopic
).- La differenza è che, anziché impostare il campo
Topic
dell'oggetto, imposterai il campoCondition
.
- La differenza è che, anziché impostare il campo
Message message = Message.builder() .putData("FOOCAR", "$500") .setNotification( Notification.builder() .setTitle("Foo Car shows strong Q2 results") .setBody("Foo Car crosses 1B miles. Stocks rally.") .build()) .setCondition(topicCondition) .build();
- Ora aggiungi la chiamata all'istanza
FirebaseMessaging
per inviare il messaggio (identica alla chiamata di invio effettuata nella funzionesendMessageToFcmTopic
).
FirebaseMessaging.getInstance().send(message);
- Infine, aggiorna la funzione
main
e attiva la chiamata solo alla funzionesendMessageToFcmTopicCondition
.
Inviare il messaggio e convalidare la ricezione
- Prima di inviare il messaggio dell'argomento, assicurati che l'istanza dell'app soddisfi la condizione dell'argomento specificata eseguendo la sottoscrizione dell'istanza dell'app agli argomenti Tecnologia e Automotive.
- Ora puoi inviare il messaggio dell'argomento eseguendo la funzione
main
diFcmSender.java
. - Come prima, dovresti essere in grado di osservare la ricezione del messaggio nell'istanza dell'app.
- Istanza dell'app in primo piano
- Istanza di app in background
- Bonus: ora puoi annullare l'iscrizione all'argomento Tecnologia e inviare nuovamente il messaggio relativo alla condizione dell'argomento. Dovresti notare che il messaggio non viene ricevuto dall'istanza dell'app.
9. Riepilogo
Facciamo un breve riepilogo di ciò che hai imparato finora.
- Come avviare l'iscrizione / l'annullamento dell'iscrizione a un argomento da un'istanza dell'app.
- Invio di un messaggio all'argomento e verifica della ricezione sulle istanze dell'app a cui è stato effettuato l'abbonamento.
- Invio di un messaggio a una condizione dell'argomento e verifica della ricezione su un'istanza dell'app che soddisfa la condizione.
Nella sezione successiva, scoprirai come puoi iscrivere / annullare l'iscrizione di istanze di app agli argomenti senza dover creare chiamate dal lato client.
10. Gestire le iscrizioni agli argomenti dal lato server
Finora, in questo codelab, tutte le chiamate di iscrizione e annullamento dell'iscrizione agli argomenti vengono avviate da un'istanza dell'app.
Tuttavia, in alcuni casi d'uso, potresti voler gestire gli abbonamenti agli argomenti dal lato server. Ad esempio, potresti voler abbonare un sottogruppo della tua base di utenti esistente a un nuovo argomento senza attendere l'implementazione dell'app.
In questa sezione imparerai a utilizzare l'SDK Firebase Admin per iscrivere e annullare l'iscrizione di un batch di token di registrazione FCM a un argomento effettuando chiamate dal lato server.
Implementare la sottoscrizione lato server dei token di registrazione FCM all'argomento FCM
- Nel codice del server, vai alla classe
FcmSubscriptionManager.java
. Individua il metodo denominatosubscribeFcmRegistrationTokensToTopic
. Qui implementerai la chiamata all'APIsubscribeToTopic
.
- Abboniamoci all'istanza dell'app all'argomento Energy. A questo scopo, fornisci innanzitutto i dati per i seguenti due campi:
registrationTokens
: un elenco separato da virgole di stringhe che rappresentano i token di registrazione FCM per cui vuoi creare iscrizioni agli argomenti.topicName
: il nome dell'argomento per l'argomento Energia, ovvero/topics/Energy
.
- Nelle righe successive implementa la chiamata, in questo modo:
TopicManagementResponse response = FirebaseMessaging.getInstance().subscribeToTopic( registrationTokens, topicName);
- Puoi esaminare
TopicManagementResponse
per alcune statistiche di alto livello sui risultati. Ad esempio, stampa il numero di sottoscrizioni agli argomenti create correttamente utilizzandogetSuccessCount
.
System.out.printf("Num tokens successfully subscribed %d", response.getSuccessCount());
- Infine, nella funzione
main
abilita le chiamate solo alla funzionesubscribeFcmRegistrationTokensToTopic
.
Creare una sottoscrizione e inviare un messaggio all'argomento
- A questo punto, puoi creare la sottoscrizione all'argomento e inviare un messaggio.
- Esegui la funzione
main
della classeFcmSubscriptionManager.java
. Verrà creata una sottoscrizione per l'argomento. - Ora configura il codice per inviare il messaggio. Come prima,
- In
FcmSender.java
, individua la funzionesendMessageToFcmTopic
. - Imposta
topicName
sull'argomento Energia, ad esempio/topics/Energy
. - Crea un oggetto
Message
e scegli come target l'argomento utilizzandosetTopic
. - Infine, aggiorna il metodo
main
per abilitare solo la funzionesendMessageToFcmTopic
.
- In
- Esegui la funzione
main
diFcmSender.java
. Il messaggio verrà inviato all'istanza dell'app e potrai osservarlo nella tua app come segue.- Istanza dell'app in primo piano
- Istanza di app in background
Implementare l'annullamento dell'iscrizione lato server dei token di registrazione FCM all'argomento FCM
- Per l'annullamento dell'iscrizione agli argomenti lato server, utilizza questa API
unsubscribeFromTopic
. Aggiungerai il codice pertinente alla funzioneunsubscribeFcmRegistrationTokensFromTopic
della classeFcmSubscriptionManager.java
.
- L'implementazione del codice di annullamento dell'iscrizione lato server e la convalida del suo effetto tramite l'invio di un messaggio all'argomento sono lasciate come esercizio per te.
11. Complimenti
Congratulazioni, hai utilizzato correttamente gli argomenti FCM per inviare messaggi multicast a sottogruppi delle istanze della tua app. In questo modo, potrai raggiungere più facilmente e tempestivamente i tuoi utenti con contenuti pertinenti.
Passaggi successivi
Ora che hai completato il codelab, prova gli argomenti per altre piattaforme utilizzando le seguenti guide:
Documenti di riferimento
- Riferimento API Android ( Java / Kotlin)
- Riferimento API iOS ( ObjectiveC / Swift)
- Riferimento API JavaScript ( versione 9 / versione 8)
- Riferimento SDK Admin ( Node.js / Java / Python / .NET)