Panoramica dell'architettura FCM
Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
FCM si basa sul seguente insieme di componenti che creano, trasportano e ricevono
messaggi:
Strumenti per comporre o creare richieste di messaggi. Il compositore di notifiche
fornisce un'opzione basata su GUI per la creazione di richieste di notifica.
Per l'automazione completa e il supporto di tutti i
tipi di messaggi,
devi creare richieste di messaggi in un
ambiente server
attendibile che supporti l'SDK Firebase Admin o il protocollo server FCM.
Questo ambiente potrebbe essere Cloud Functions for Firebase, App Engine,
o il tuo server delle app.

Il backend di FCM, che (tra le altre funzioni) accetta le richieste di messaggi,
esegue la distribuzione dei messaggi tramite argomenti e genera metadati dei messaggi come
l'ID messaggio.
Un livello di trasporto a livello di piattaforma, che esegue il routing del messaggio al dispositivo di destinazione, gestisce il recapito dei messaggi e applica la configurazione specifica della piattaforma, se appropriato. Questo livello di trasporto include:
L'SDK FCM sul dispositivo dell'utente, in cui viene visualizzata la notifica o
il messaggio viene gestito in base allo stato di primo piano/background dell'app
e a qualsiasi logica dell'applicazione pertinente.
Flusso del ciclo di vita
- Registra i dispositivi per ricevere messaggi da FCM. Un'istanza di un'app client si registra per ricevere messaggi, ottenendo un token di registrazione che identifica in modo univoco l'istanza dell'app.
- Inviare e ricevere messaggi downstream.
- Invia un messaggio. Il server dell'app invia messaggi all'app client:
- Il messaggio viene composto, nel compositore di notifiche o in un ambiente attendibile, e viene inviata una richiesta di messaggio al backend FCM.
- Il backend FCM riceve la richiesta di messaggio, genera un ID messaggio e altri metadati e lo invia al livello di trasporto specifico della piattaforma.
- Quando il dispositivo è online, il messaggio viene inviato al dispositivo tramite il livello di trasporto specifico della piattaforma.
- Sul dispositivo, l'app client riceve il messaggio o la notifica.
Salvo quando diversamente specificato, i contenuti di questa pagina sono concessi in base alla licenza Creative Commons Attribution 4.0, mentre gli esempi di codice sono concessi in base alla licenza Apache 2.0. Per ulteriori dettagli, consulta le norme del sito di Google Developers. Java è un marchio registrato di Oracle e/o delle sue consociate.
Ultimo aggiornamento 2025-08-16 UTC.
[null,null,["Ultimo aggiornamento 2025-08-16 UTC."],[],[],null,["\u003cbr /\u003e\n\nFCM relies on the following set of components that build, transport, and receive\nmessages:\n\n1. Tooling to compose or build message requests. The Notifications composer\n provides a GUI-based option for creating notification requests.\n For full automation and support for all\n [message types](https://firebase.google.com/docs/cloud-messaging/concept-options#notifications_and_data_messages),\n you must build message requests in a trusted\n [server environment](https://firebase.google.com/docs/cloud-messaging/server)\n that supports the Firebase Admin SDK or the FCM server protocol.\n This environment could be Cloud Functions for Firebase, App Engine,\n or your own app server.\n\n2. The FCM backend, which (among other functions) accepts message requests,\n performs fanout of messages via topics, and generates message metadata such\n as the message ID.\n\n3. A platform-level transport layer, which routes the message to the targeted\n device, handles message delivery, and applies platform-specific\n configuration where appropriate. This transport layer includes:\n\n - Android transport layer (ATL) for Android devices with Google Play services\n - Apple Push Notification service (APNs) for Apple devices\n - Web push protocol for web apps\n\n | **Note:** Platform-level transport layers are outside the core FCM product. FCM messages routed to a platform-level transport layer may be subject to terms specific to that platform rather than FCM's terms of service. Android message routing via ATL falls under the [Google APIs terms of service](https://www.google.com/url?q=https://developers.google.com/terms/&sa=D&ust=1558536676246000&usg=AFQjCNFrlRMLv51d1S9NkWxD0IoYSqJ2Ng).\n4. The FCM SDK on the user's device, where the notification is displayed or\n the message is handled according to the app's foreground/background state\n and any relevant application logic.\n\nLifecycle flow\n\n- **Register devices to receive messages from FCM**. An instance of a client app registers to receive messages, obtaining a registration token that uniquely identifies the app instance.\n- **Send and receive downstream messages** .\n - Send a message. The app server sends messages to the client app:\n 1. The message is composed, either in the Notifications composer or a trusted environment, and a message request is sent to the FCM backend.\n 2. The FCM backend receives the message request, generates a message ID and other metadata, and sends it to the platform specific transport layer.\n 3. When the device is online, the message is sent via the platform-specific transport layer to the device.\n 4. On the device, the client app receives the message or notification."]]