In base al modello di pubblicazione/sottoscrizione, la messaggistica basata su argomenti FCM ti consente di inviare un messaggio a più dispositivi che hanno attivato un determinato argomento. Componi i messaggi per argomento in base alle tue esigenze e FCM gestisce il routing e la consegna affidabile del messaggio ai dispositivi giusti.
Ad esempio, gli utenti di un'app di previsione delle maree locali potrebbero attivare un argomento "avvisi sulle correnti di marea" e ricevere notifiche sulle condizioni ottimali per la pesca in acqua salata in aree specifiche. Gli utenti di un'app sportiva potrebbero iscriversi ad aggiornamenti automatici dei risultati in tempo reale delle partite delle loro squadre preferite.
Ecco alcuni aspetti da tenere presenti in merito agli argomenti:
I messaggi sugli argomenti sono più adatti per contenuti come il meteo o altre informazioni disponibili pubblicamente.
I messaggi topic sono ottimizzati per la velocità effettiva anziché per la latenza. Per l'invio rapido e sicuro a singoli dispositivi o piccoli gruppi di dispositivi, scegli come target dei messaggi i token di registrazione, non gli argomenti.
Se devi inviare messaggi a più dispositivi per utente, valuta la possibilità di utilizzare la messaggistica di gruppo per i dispositivi per questi casi d'uso.
La messaggistica argomento supporta un numero illimitato di iscrizioni per ogni argomento. Tuttavia, FCM applica limiti in queste aree:
- Un'istanza dell'app può essere sottoscritta per non più di 2000 argomenti.
- Se utilizzi l'importazione collettiva per abbonare le istanze dell'app, ogni richiesta è limitata a 1000 istanze.
- La frequenza dei nuovi abbonamenti è limitata per progetto. Se invii troppe richieste di iscrizione in un breve periodo di tempo, i server FCM risponderanno con
429 RESOURCE_EXHAUSTED
("quota superata"). Riprova con il backoff esponenziale.
Abbonare l'app client a un argomento
Le app client possono iscriversi a qualsiasi argomento esistente o creare un nuovo argomento. Quando un'app client si iscrive a un nuovo nome di argomento (che non esiste già per il tuo progetto Firebase), in FCM viene creato un nuovo argomento con quel nome a cui qualsiasi client può successivamente iscriversi.
Per iscriverti a un argomento, chiama subscribeToTopic()
con il nome dell'argomento. Questo metodo
restituisce un Future
, che si risolve quando l'abbonamento è andato a buon fine:
await FirebaseMessaging.instance.subscribeToTopic("topic");
Per annullare l'iscrizione, chiama unsubscribeFromTopic()
con il nome dell'argomento.
subscribeToTopic()
e unsubscribeFromTopic()
non sono supportati per i client web. Per scoprire come gestire gli abbonamenti per gli utenti web, consulta
Inviare messaggi agli argomenti su web/JavaScript.
Passaggi successivi
- Scopri come inviare messaggi di argomento.
- Scopri come gestire gli abbonamenti agli argomenti sul server.