Omówienie architektury FCM
Zadbaj o dobrą organizację dzięki kolekcji
Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.
FCM korzysta z tych komponentów, które tworzą, przesyłają i odbierają wiadomości:
Narzędzia do tworzenia próśb o wiadomości. Kreator powiadomień
zapewnia opcję opartą na GUI do tworzenia żądań powiadomień.
Aby uzyskać pełną automatyzację i obsługę wszystkich rodzajów wiadomości, musisz tworzyć żądania wiadomości w zaufanym środowisku serwera, które obsługuje pakiet Firebase Admin SDK lub protokół serwera FCM.
Może to być Cloud Functions dla FirebaseApp Engine lub Twój własny serwer aplikacji.

Backend FCM, który (między innymi) akceptuje żądania wysyłania wiadomości, rozsyła wiadomości za pomocą tematów i generuje metadane wiadomości, takie jak identyfikator wiadomości.
Warstwa transportowa na poziomie platformy, która kieruje wiadomość do docelowego urządzenia, obsługuje dostarczanie wiadomości i w odpowiednich przypadkach stosuje konfigurację specyficzną dla platformy. Ta warstwa transportowa obejmuje:
Pakiet SDK FCM na urządzeniu użytkownika, na którym wyświetlane jest powiadomienie lub
wiadomość jest obsługiwana zgodnie ze stanem aplikacji (na pierwszym planie lub w tle)
i odpowiednią logiką aplikacji.
Proces cyklu życia
- Rejestrowanie urządzeń w celu otrzymywania wiadomości z FCM Instancja aplikacji klienckiej rejestruje się, aby otrzymywać wiadomości, i uzyskuje token rejestracji, który jednoznacznie ją identyfikuje.
- Wysyłanie i odbieranie wiadomości do urządzenia.
- Wyślij wiadomość. Serwer aplikacji wysyła wiadomości do aplikacji klienckiej:
- Wiadomość jest tworzona w kompozytorze powiadomień lub w zaufanym środowisku, a do backendu FCM wysyłane jest żądanie wiadomości.
- Backend FCM odbiera żądanie wiadomości, generuje identyfikator wiadomości i inne metadane oraz wysyła je do warstwy transportowej specyficznej dla platformy.
- Gdy urządzenie jest online, wiadomość jest wysyłana do niego przez warstwę transportową specyficzną dla platformy.
- Aplikacja kliencka na urządzeniu otrzymuje wiadomość lub powiadomienie.
O ile nie stwierdzono inaczej, treść tej strony jest objęta licencją Creative Commons – uznanie autorstwa 4.0, a fragmenty kodu są dostępne na licencji Apache 2.0. Szczegółowe informacje na ten temat zawierają zasady dotyczące witryny Google Developers. Java jest zastrzeżonym znakiem towarowym firmy Oracle i jej podmiotów stowarzyszonych.
Ostatnia aktualizacja: 2025-08-29 UTC.
[null,null,["Ostatnia aktualizacja: 2025-08-29 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."]]