Stay organized with collectionsSave and categorize content based on your preferences.
You can send notification messages usingthe Notifications composerin theFirebaseconsole. Though this does not
provide the same flexibility or scalability as sending messages with theAdmin SDKor thev1 HTTP protocol, it can be
very useful for testing or for highly targeted marketing and user engagement.
TheFirebaseconsole provides analytics-basedA/B testingto help refine and
improve marketing messages.
After you have developed logic in your app to receive messages, you can allow
non-technical users to send messages withthe Notifications composer.
About
When you send a notification message fromthe Notifications composer,
Google uses the values you enter in the form fields in these ways:
Fields likeUser segmentandExpiresdetermine the message target
and delivery options.
Fields likeNotification textandCustom dataare sent to the client in a
payload comprised of key/value pairs.
These fields map to keys available through theMessageobject. For example, key/value pairs entered in theCustom datafield of the composer are handled as adatapayload for the notification. Other fields map directly to keys in thenotificationobject or in the platform specific notification configuration.
Note that some fields inthe Notifications composerarenotavailable through
theFCMAPI. For example, you can target user segments
based on app version, language, browser type and version, or user properties
in ways that are not available using the server API.
The keys that theFirebaseconsole sends to clients are:
Key
Console field label
Description
notification.title
Notification title
Indicates notification title.
notification.body
Notification text
Indicates notification body text.
data
Custom data
Key/value pairs that you define. These are delivered
as a data payload for the app to handle.
Keys that determine message delivery include:
Key
Console field label
Description
sound
Sound
Indicates a sound to play when the device receives a notification.
time_to_live
Expires
This parameter specifies how long (in seconds) the message should be kept inFCMstorage
if the device is offline.
For more information, seeSetting the lifespan of a message.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-09-04 UTC."],[],[],null,["You can send notification messages using\n[the Notifications composer](//console.firebase.google.com/project/_/notification) in the Firebase console. Though this does not\nprovide the same flexibility or scalability as sending messages with the\n[Admin SDK](/docs/cloud-messaging/admin) or the\n[v1 HTTP protocol](/docs/reference/fcm/rest), it can be\nvery useful for testing or for highly targeted marketing and user engagement.\nThe Firebase console provides analytics-based\n[A/B testing](/docs/ab-testing/abtest-with-console) to help refine and\nimprove marketing messages.\n\nAfter you have developed logic in your app to receive messages, you can allow\nnon-technical users to send messages with\n[the Notifications composer](//console.firebase.google.com/project/_/notification).\n\nAbout\n\nWhen you send a notification message from\n[the Notifications composer](//console.firebase.google.com/project/_/notification),\nGoogle uses the values you enter in the form fields in these ways:\n\n- Fields like **User segment** and **Expires** determine the message target and delivery options.\n- Fields like **Notification text** and **Custom data** are sent to the client in a payload comprised of key/value pairs.\n\nThese fields map to keys available through the\n[`Message`](/docs/reference/fcm/rest/v1/projects.messages#resource:-message)\nobject. For example, key/value pairs entered in the **Custom data**\nfield of the composer are handled as a\n[`data`](/docs/reference/fcm/rest/v1/projects.messages#Message.FIELDS.data)\npayload for the notification. Other fields map directly to keys in the\n[`notification`](/docs/reference/fcm/rest/v1/projects.messages#notification)\nobject or in the platform specific notification configuration.\n\nNote that some fields in\n[the Notifications composer](//console.firebase.google.com/project/_/notification) are *not* available through\nthe FCM API. For example, you can target user segments\nbased on app version, language, browser type and version, or user properties\nin ways that are not available using the server API.\n| **Caution:** In another important difference from programmatic messaging, the console lets you cancel any scheduled message that is not already in progress. **Once\n| a message fanout is actually in progress, it is fully committed and\n| cannot be canceled through the console nor by Firebase support.**\n\nThe keys that the Firebase console sends to clients are:\n\n| Key | Console field label | Description |\n|----------------------|---------------------|-----------------------------------------------------------------------------------------------|\n| `notification.title` | Notification title | Indicates notification title. |\n| `notification.body` | Notification text | Indicates notification body text. |\n| `data` | Custom data | Key/value pairs that you define. These are delivered as a data payload for the app to handle. |\n\nKeys that determine message delivery include:\n\n| Key | Console field label | Description |\n|----------------|---------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `sound` | Sound | Indicates a sound to play when the device receives a notification. |\n| `time_to_live` | Expires | This parameter specifies how long (in seconds) the message should be kept in FCM storage if the device is offline. For more information, see [Setting the lifespan of a message](/docs/cloud-messaging/concept-options#ttl). |"]]