1. Introduzione
Obiettivi
In questo codelab imparerai come strumentare la tua app multipiattaforma in modo da poter trasmettere messaggi push in multicast a vari sottogruppi delle istanze dell'app utilizzando argomenti FCM.
Una volta terminato, sarai in grado di sfruttare l'infrastruttura FCM per gestire questi sottogruppi e i messaggi push multicast sui sottogruppi.
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 mantenere le iscrizioni a questi argomenti. L'atto di associare e dissociare un'istanza dell'app all'argomento è chiamato rispettivamente iscriviti e annulla l'iscrizione
Gli argomenti devono essere utilizzati per i contenuti disponibili pubblicamente. Ad esempio, messaggi sugli aggiornamenti meteo. Se desideri inviare messaggi riservati all'utente, utilizza Firebase Admin SDK per il multicasting di messaggi su più dispositivi .
Il multicasting basato su argomenti è ottimizzato per il throughput.
Cosa imparerai
- 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 sottoscrizioni agli argomenti sul lato server ed eseguire sottoscrizioni e cancellazioni in blocco.
Cosa costruirai
- Un'app Android che si iscrive/annulla l'iscrizione agli argomenti e riceve i messaggi quando vengono inviati agli argomenti.
- Un'integrazione lato server che utilizza Firebase Admin SDK, che verrà utilizzato per inviare messaggi di argomento tramite le API FCM.
Di cosa avrai bisogno
- Un browser a tua scelta, come Chrome.
- IntelliJ IDEA IDE per lo sviluppo di applicazioni Java.
- Assicurati di attivare il supporto per Gradle durante l'installazione.
- Android Studio IDE per lo sviluppo di applicazioni Android.
- Un dispositivo per eseguire l'applicazione Android. Entrambi:
- L'emulatore Android. (Richiede la configurazione in Android Studio ).
- Un dispositivo Android fisico collegato al computer e impostato in modalità sviluppatore.
- Un account Google per creare e gestire il tuo progetto Firebase.
2. Prepararsi
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 di avvio per questo codelab si trova nella directory di messaging
del ramo fcm-topics-codelab
. Procedi come segue per raggiungere il codice di avviamento. Contiene due directory StockNewsApp
e StockNewsServer
. Il primo contiene l'app Android di avviamento e il secondo ha il codice lato server di avviamento.
git checkout fcm-topics-codelab cd messaging/fcm-topics-codelab/starter
La versione completa di questo codelab viene inserita nella directory messaging/fcm-topics-codelab/completed
.
Crea un progetto Firebase
- Nella console Firebase , fai clic su Aggiungi progetto , denomina il progetto Firebase StockNews e fai clic su continua. Nota: ricorda l'ID progetto per il tuo progetto Firebase (o fai clic sull'icona Modifica per impostare l'ID progetto preferito).
- Puoi saltare l'abilitazione di Google Analytics. Per gli scopi di questo codelab, non ne hai bisogno. Fare clic su Continua.
- Fare clic su Crea progetto .
Congratulazioni! Hai appena creato il tuo progetto Firebase. Ora puoi fare clic sul nome del progetto per accedere alla console.
3. Configurazione dell'app Firebase specifica della piattaforma
La maggior parte delle modifiche al codice richieste per abilitare il supporto di Firebase sono già archiviate nel progetto su cui stai lavorando. Tuttavia, per aggiungere il supporto per le piattaforme mobili, è necessario:
- Registra la piattaforma desiderata sul progetto Firebase
- Scarica il file di configurazione specifico della piattaforma e aggiungilo al codice.
Ai fini di questo codelab, aggiungeremo un'app Android Firebase.
Configura Android
- In Firebase Console , seleziona Impostazioni progetto nella parte superiore della barra di navigazione a sinistra nell'ingranaggio Impostazioni e fai clic sull'icona Android sotto Le tue app nella pagina Generale .
Dovresti vedere la seguente finestra di dialogo:
- Il valore importante da fornire è il nome del pacchetto Android . Impostalo su
com.ticker.stocknews
.- Il nome del pacchetto fornito qui deve essere lo stesso di quello fornito in
AndroidManifest.xml
del codice StockNewsApp di partenza. Se desideri individuarlo o modificarlo, procedi nel seguente modo:- 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 essere lo stesso di quello fornito in
- Nella finestra di dialogo Firebase, incolla il nome del pacchetto copiato nel campo del nome del pacchetto Android .
- Non è necessario il certificato di firma del debug SHA-1 per questo codelab, perché questa app non verrà rilasciata. Lascia questo vuoto.
- Fare clic su Registra app .
- Continuando nella Console Firebase, segui le istruzioni per scaricare il file di configurazione
google-services.json
. - Puoi saltare i restanti passaggi di configurazione, poiché tutto il resto è già configurato nel codice dell'app di base. Troverai la tua app elencata nella pagina principale di Firebase Console.
- 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
Sei pronto per iniziare effettivamente a lavorare sulla tua app! Innanzitutto, crea ed esegui l'app.
Importa l'app di avviamento
Avvia Android Studio e importa messaging/fcm-topics-codelab/starter/StockNewsApp
dalla directory del codice di avvio.
Dopo che il progetto è stato caricato, potresti anche vedere un avviso che Git non sta tracciando tutte le modifiche locali, puoi fare clic su " Ignora " o " X " in alto a destra. (Non riporterai alcuna modifica al repository Git.)
Nell'angolo in alto a sinistra della finestra del progetto, dovresti vedere qualcosa come l'immagine qui sotto se sei nella visualizzazione Android . (Se sei nella vista Progetto , dovrai espandere il progetto per vedere la stessa cosa)
Tieni presente che Android Studio potrebbe richiedere diversi secondi per compilare il progetto in background per la prima volta. Durante questo periodo vedrai uno spinner nella barra di stato nella parte inferiore di Android Studio:
Ti consigliamo di attendere fino al termine dell'operazione prima di apportare modifiche al codice. Ciò consentirà ad Android Studio di inserire tutti i componenti necessari.
Inoltre, se viene visualizzato un messaggio che dice "Ricarica per rendere effettive le modifiche alla lingua?" o qualcosa di simile, seleziona "Sì".
Configurazione dell'emulatore
Se hai bisogno di aiuto per configurare un emulatore Android, fai riferimento all'articolo Esegui la tua app .
Comprendi il codice di avviamento dell'app Android
- Il codice di avviamento è un'app Android leggera con funzionalità e interfaccia utente minime.
- Una dipendenza dall'SDK di messaggistica di Firebase è 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à relative a Firebase Cloud Messaging. Per ulteriori informazioni, consulta la documentazione di FirebaseMessagingService .
- La funzione
onNewToken
viene chiamata quando viene creato o aggiornato il token di registrazione FCM. Per ulteriori informazioni, vedere Monitorare la generazione di token . - La funzione
onMessageReceived
viene chiamata quando viene ricevuto un messaggio e l'app è in primo piano. Attualmente, registra semplicemente il messaggio ricevuto.- Consulta Ricevere messaggi in un'app Android per ulteriori informazioni sulle differenze tra la consegna e la gestione dei messaggi in background e in primo piano.
- Questo gestore,
- Inoltre, in
AndroidManifest.xml
, viene fornita anche una classe diApplication
Android denominataStockNewsApplication
.- Questa classe sarà la prima a essere istanziata all'avvio dell'app.
- Nella funzione
StockNewsApplication
della classeonCreate
, viene aggiunta una chiamata per la creazione del token di registrazione FCM. Genererà un token di registrazione FCM valido e lo registrerà.
-
MainActivity.java
aggiungeRecyclerView
che visualizza le scelte della categoria di azioni. -
SubscriptionAdapter.java
implementaRecyclerView.Adapter
che disegna la schermata di selezione della categoria di azioni.- Ciascuna categoria di azioni ha un nome e un interruttore di sottoscrizione accanto ad essa.
- La modifica dell'interruttore dovrebbe effettuare una chiamata di iscrizione/annullamento dell'iscrizione a un argomento FCM.
- Implementerai questi bandi nelle prossime sezioni.
- La classe
model/StockCategories.java
contiene un elenco di tutte le categorie di azioni e i nomi degli argomenti associati.
Esegui l'app di avviamento
- Collega il tuo dispositivo Android al computer o avvia un emulatore.
- Nella barra degli strumenti in alto, seleziona il tuo dispositivo Android o emulatore di destinazione e premi il pulsante Esegui.
- 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 poiché verrà utilizzato nei passaggi successivi.
5. Invia un messaggio di prova
Ora sei pronto per inviare un messaggio di prova all'istanza dell'app che avevi configurato nell'ultimo passaggio.
Importa il codice del server iniziale
Avvia IntelliJ IDEA e apri il progetto messaging/fcm-topics-codelab/starter/StockNewsServer
.
La vista del progetto nella barra di navigazione a sinistra dovrebbe assomigliare a questa:
Nota, potrebbero essere necessari alcuni minuti prima che Intellij IDEA crei il tuo progetto, incluso il pull delle dipendenze richieste.
Comprendere il codice di avvio del server
- Il codice di avvio del server è un progetto Java basato su Gradle.
- Il file
build.gradle
ha già aggiunto la dipendenza dall'SDK di firebase-admin . Questo SDK fornisce l'accesso a varie funzionalità di invio di messaggi FCM.
- Infine, ci sono due classi, vale a dire:
-
FcmSender.java
: questa classe contiene i seguenti metodi di nota:-
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 di argomento FCM.
-
-
FcmSubscriptionManager.java
: questa classe contiene metodi che consentono di gestire le sottoscrizioni 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 sottoscrizione dei token di registrazione FCM da un argomento FCM.
-
-
Impostazione del codice server
- Innanzitutto, è necessario configurare un account del servizio 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 progetto nella barra di navigazione a sinistra e seleziona Impostazioni progetto .
- Nella pagina delle impostazioni, seleziona Account di servizio e fai clic su Crea account di servizio .
- Ora fai clic sul pulsante Genera nuova chiave privata e inizierà un download automatico del file della tua chiave.
- Rinominare il file della chiave in
service-account.json
e copiarlo nella cartellamessaging/fcm-topics-codelab/starter/StockNewsServer/src/main/resources
. - Sia
FcmSender.java
cheFcmSubscriptionManager.java
caricano il fileservice-account.json
da classpath usando il codice seguente.
- Vai alla console Firebase, fai clic sull'icona a forma di ingranaggio accanto a Panoramica 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 copiato da Esegui la sezione dell'app di avvio nel camporegistrationToken
. - Nella funzione
main
, decommenta solo la funzionesendMessageToFcmRegistrationToken
e fai clic su Esegui per eseguire il codice.- Osservare come viene impostato il token di registrazione FCM nel campo
Token
dell'oggettomessage
. - Inoltre, nota come abbiamo utilizzato l'API di
send
dell'interfaccia diFirebaseMessaging
.
- Osservare come viene impostato il token di registrazione FCM nel campo
- Questo dovrebbe inviare un messaggio all'istanza dell'app che hai configurato nel passaggio precedente.
- Quando l'istanza dell'app è in primo piano, dovresti vedere il contenuto del messaggio registrato.
- E quando l'istanza dell'app è in background, vedrai apparire il messaggio nella barra delle notifiche.
Fantastico, hai utilizzato Firebase Admin SDK per inviare messaggi a un'istanza dell'app. Ulteriori informazioni sull'utilizzo di Firebase Admin SDK nel server .
6. Implementare l'abbonamento/annullamento dell'abbonamento all'argomento
In questo passaggio implementerai le azioni di sottoscrizione e annullamento dell'iscrizione all'argomento, nell'interruttore Categoria Stock dell'app Android.
Quando un utente dell'app attiva o disattiva l'opzione per una particolare categoria di azioni, verrà effettuata una richiesta di sottoscrizione o annullamento della sottoscrizione di un argomento.
Codice di revisione
- Passare alla classe
SubscriptionAdapter.java
nel codice dell'app Android e individuare la classeRecyclerViewViewHolder
.
- Il costruttore di classi configura un listener per l'attivazione/disattivazione della sottoscrizione usando
setOnCheckedChangeListener
. - A seconda dell'interruttore, le azioni di sottoscrizione e annullamento dell'iscrizione vengono eseguite chiamando rispettivamente i metodi
subscribeToStockCategory
eunsubscribeFromStockCategory
. - Il metodo
setData
viene chiamatoonBindViewHolder
dell'adattatore RecyclerView per associare il ViewHolder con la categoria Stock appropriata.
Implementare la sottoscrizione dell'argomento
- Nel metodo
subscribeToStockCategory
, implementerai la chiamata all'APIsubscribeToTopic
dell'oggettoFirebaseMessaging
. Il codice potrebbe assomigliare a questo:
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 all'argomento
- Allo stesso modo, nella condizione else, implementerai la chiamata all'API
unsubscribeFromTopic
. Qualcosa sulla falsariga di quanto segue:
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(); }); }
Proviamolo
- Esegui l'app e attiva le opzioni della categoria di azioni per eseguire le azioni Iscriviti e Annulla iscrizione. Sembrerebbe qualcosa del genere:
sottoscrivi | Annulla l'iscrizione |
7. Invio del tuo primo messaggio sull'argomento
In questo passaggio implementerai il codice lato server per inviare un messaggio di argomento FCM.
Implementare l'integrazione lato server per l'invio di messaggi sull'argomento
- Nel codice del server, passa a
FcmSender.java
e individua il metodo denominatosendMessageToFcmTopic
.
- Nella prima riga, fornisci l'argomento FCM a cui desideri inviare il messaggio.
- È una stringa nel formato:
/topics/<Topic Name>
. Ad esempio,/topics/Technology
.
- È una stringa nel formato:
- Nelle righe successive creare un nuovo oggetto
message
(simile a quello definito nella funzionesendMessageToFcmRegistrationToken
).- La differenza sarà invece di impostare il campo
Token
dell'oggettomessage
, imposterai il campoTopic
.
- La differenza sarà invece di 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 (identico alla chiamata di invio effettuata nella funzionesendMessageToFcmRegistrationToken
).
FirebaseMessaging.getInstance().send(message);
- Infine, aggiorna la funzione
main
e abilita la chiamata alla sola funzionesendMessageToFcmTopic
.
Invia messaggio e convalida ricevuta
- Prima di inviare il messaggio dell'argomento, assicurati innanzitutto che l'istanza dell'app sia iscritta all'argomento a cui vuoi inviare.
- Questo può essere fatto ruotando l'interruttore corrispondente. Per esempio:
- Ora puoi inviare il tuo messaggio di argomento eseguendo la funzione
main
diFcmSender.java
. - Come prima dovresti essere in grado di osservare la ricezione del messaggio sull'istanza dell'app.
- Istanza dell'app in primo piano
- Istanza dell'app in background
- Bonus: prova ad annullare l'iscrizione all'argomento a cui hai inviato e inviare nuovamente il messaggio. Osserverai che il messaggio non viene consegnato all'istanza dell'app.
8. Invio del tuo primo messaggio sulla condizione dell'argomento
La funzione della condizione dell'argomento consente di inviare messaggi a una combinazione di argomenti consentendo di fornire una definizione del pubblico più espressiva.
Ad esempio, nella nostra app StockNews, considera la possibilità di inviare messaggi a un gruppo di istanze dell'app che sono abbonate ad argomenti relativi alla tecnologia o all'automotive. Un caso del genere può verificarsi, ad esempio, se si verifica un evento degno di nota che coinvolge Waymo.
Argomenti ti consente di esprimere la tua combinazione sotto forma di un'espressione booleana utilizzando i seguenti operatori
- && : E logico. Ad esempio,
'Technology' in topics && 'Automotive' in topics
: mira solo alle istanze dell'app sottoscritte sia agli argomenti relativi alla tecnologia che a quelli automobilistici. - || : OR logico. Ad esempio,
'Technology' in topics || 'Automotive' in topics
: indirizza le istanze dell'app sottoscritte ad argomenti relativi alla tecnologia o all'automotive. - () : parentesi per il raggruppamento. Ad esempio,
'Technology' in topics && ('Automotive' in topics || 'Energy' in topics)
- Si rivolge solo alle istanze dell'app sottoscritte a Tecnologia e ad argomenti Automotive o Energia.
Ulteriori informazioni su come creare richieste di invio per l'utilizzo di questa funzionalità.
Implementare l'integrazione lato server per l'invio di messaggi sulla condizione dell'argomento
- Nel codice del server, passa 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 sarà invece di impostare il campo
Topic
dell'oggetto, imposterai il campoCondition
.
- La differenza sarà invece di 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 (identico alla chiamata di invio effettuata nella funzionesendMessageToFcmTopic
).
FirebaseMessaging.getInstance().send(message);
- Infine, aggiorna la funzione
main
e abilita la chiamata solo alla funzionesendMessageToFcmTopicCondition
.
Invia il messaggio e convalida la ricevuta
- Prima di inviare il messaggio relativo all'argomento, assicurati che l'istanza dell'app soddisfi la condizione dell'argomento specificata iscrivendo l'istanza dell'app agli argomenti relativi alla tecnologia e all'automotive.
- Ora puoi inviare il tuo messaggio di argomento eseguendo la funzione
main
diFcmSender.java
. - Come prima, dovresti essere in grado di osservare la ricezione del messaggio sull'istanza dell'app.
- Istanza dell'app in primo piano
- Istanza dell'app in background
- Bonus: ora puoi annullare l'iscrizione all'argomento Tecnologia e inviare nuovamente il messaggio sulla condizione dell'argomento. È necessario osservare che il messaggio non viene ricevuto dall'istanza dell'app.
9. Riepilogo
Facciamo un breve riepilogo di ciò che hai imparato fino a questo punto.
- Come avviare una sottoscrizione/annullamento della sottoscrizione di un argomento da un'istanza dell'app.
- Invio di un messaggio all'argomento e verifica della ricezione sulle istanze dell'app sottoscritte.
- Invio di un messaggio a un argomento Condizione e verifica della ricezione su un'istanza dell'app che soddisfa la condizione.
Nella sezione successiva imparerai come sottoscrivere/annullare l'iscrizione di istanze di app agli argomenti senza dover creare un'istanza di chiamate dal lato client.
10. Gestisci le sottoscrizioni agli argomenti dal lato server
Finora, in questo codelab, tutte le chiamate di sottoscrizione e annullamento delle iscrizioni agli argomenti vengono avviate da un'istanza dell'app.
Tuttavia, in alcuni casi d'uso, potresti voler gestire le sottoscrizioni agli argomenti dal lato server. Ad esempio, potresti voler iscrivere un sottogruppo della tua base di utenti esistente a un nuovo argomento senza attendere l'implementazione dell'app.
In questa sezione imparerai come utilizzare Firebase Admin SDK per sottoscrivere e annullare la sottoscrizione di un batch di token di registrazione FCM a un argomento effettuando chiamate dal lato server.
Implementare l'abbonamento lato server dei token di registrazione FCM all'argomento FCM
- Nel codice del server, passa alla classe
FcmSubscriptionManager.java
. Individua il metodo denominatosubscribeFcmRegistrationTokensToTopic
. Implementerai la chiamata all'APIsubscribeToTopic
qui.
- Sottoscriviamo l'istanza dell'app all'argomento Energia. Per fare ciò, fornisci innanzitutto i dati per i due campi seguenti:
-
registrationTokens
: un elenco di stringhe separate da virgole che rappresentano i token di registrazione FCM per i quali desideri creare sottoscrizioni all'argomento. -
topicName
: il nome dell'argomento per l'argomento Energia, ovvero/topics/Energy
.
-
- Nelle prossime righe implementare il bando, secondo queste linee:
TopicManagementResponse response = FirebaseMessaging.getInstance().subscribeToTopic( registrationTokens, topicName);
- Puoi controllare
TopicManagementResponse
per alcune statistiche sui risultati di alto livello. Ad esempio la stampa del numero di sottoscrizioni di argomenti create correttamente utilizzandogetSuccessCount
.
System.out.printf("Num tokens successfully subscribed %d", response.getSuccessCount());
- Infine, nella funzione
main
abilita le chiamate solo alla funzionesubscribeFcmRegistrationTokensToTopic
.
Crea abbonamento e invia un messaggio sull'argomento
- A questo punto sei pronto per creare la sottoscrizione all'argomento e inviargli un messaggio.
- Esegui la funzione
main
della classeFcmSubscriptionManager.java
. Questo creerà una sottoscrizione all'argomento. - Ora, imposta il codice per inviare il messaggio. Simile a prima,
- In
FcmSender.java
individuare la funzionesendMessageToFcmTopic
. - Impostare
topicName
sull'argomento Energia, ovvero/topics/Energy
. - Crea un oggetto
Message
e indirizzalo all'argomento usandosetTopic
. - Infine, aggiorna il metodo
main
per abilitare solo la funzionesendMessageToFcmTopic
.
- In
- Esegui la funzione
main
diFcmSender.java
. Questo invierà il messaggio alla tua istanza dell'app e potrai osservarlo nella tua app come segue.- Istanza dell'app in primo piano
- Istanza dell'app in background
Implementare l'annullamento dell'iscrizione lato server dei token di registrazione FCM all'argomento FCM
- Per annullare le iscrizioni agli argomenti lato server, utilizzare 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 inviando un messaggio sull'argomento è lasciato come esercizio per te.
11. Congratulazioni
Congratulazioni, hai utilizzato con successo gli argomenti FCM per inviare messaggi multicast a sottogruppi delle istanze dell'app. Ciò contribuirà a semplificare la tua capacità di raggiungere tempestivamente i tuoi utenti con contenuti pertinenti.
Qual è il prossimo?
Ora che hai completato il codelab, considera la possibilità di provare 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 di amministrazione ( Node.js / Java / Python / .NET )