Firebase Cloud Messaging module.

## Exceptions

| ### QuotaExceededError exception firebase_admin.messaging.QuotaExceededError(*message* , *cause=None* , *http_response=None* ) |
|---|
| Bases: [`ResourceExhaustedError`](https://firebase.google.com/docs/reference/admin/python/firebase_admin.exceptions#firebase_admin.exceptions.ResourceExhaustedError "firebase_admin.exceptions.ResourceExhaustedError") Sending limit exceeded for the message target. |

| ### SenderIdMismatchError exception firebase_admin.messaging.SenderIdMismatchError(*message* , *cause=None* , *http_response=None* ) |
|---|
| Bases: [`PermissionDeniedError`](https://firebase.google.com/docs/reference/admin/python/firebase_admin.exceptions#firebase_admin.exceptions.PermissionDeniedError "firebase_admin.exceptions.PermissionDeniedError") The authenticated sender ID is different from the sender ID for the registration token. |

| ### ThirdPartyAuthError exception firebase_admin.messaging.ThirdPartyAuthError(*message* , *cause=None* , *http_response=None* ) |
|---|
| Bases: [`UnauthenticatedError`](https://firebase.google.com/docs/reference/admin/python/firebase_admin.exceptions#firebase_admin.exceptions.UnauthenticatedError "firebase_admin.exceptions.UnauthenticatedError") APNs certificate or web push auth key was invalid or missing. |

| ### UnregisteredError exception firebase_admin.messaging.UnregisteredError(*message* , *cause=None* , *http_response=None* ) |
|---|
| Bases: [`NotFoundError`](https://firebase.google.com/docs/reference/admin/python/firebase_admin.exceptions#firebase_admin.exceptions.NotFoundError "firebase_admin.exceptions.NotFoundError") App instance was unregistered from FCM. This usually means that the registration token or installation ID (FID) used is no longer valid and a new one must be used. |

## Classes

| ### APNSConfig class firebase_admin.messaging.APNSConfig(*headers=None* , *payload=None* , *fcm_options=None* , *live_activity_token=None* ) |
|---|
| Bases: `object` APNS-specific options that can be included in a message. Refer to [APNS Documentation](https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/CommunicatingwithAPNs.html) for more information. Parameters: : - **headers** -- A dictionary of headers (optional). - **payload** -- A `messaging.APNSPayload` to be included in the message (optional). - **fcm_options** -- A `messaging.APNSFCMOptions` instance to be included in the message (optional). - **live_activity_token** -- A live activity token string (optional). |

| ### APNSFCMOptions class firebase_admin.messaging.APNSFCMOptions(*analytics_label=None* , *image=None* ) |
|---|
| Bases: `object` Options for features provided by the FCM SDK for iOS. Parameters: : - **analytics_label** -- contains additional options for features provided by the FCM iOS SDK (optional). - **image** -- contains the URL of an image that is going to be displayed in a notification (optional). |

| ### APNSPayload class firebase_admin.messaging.APNSPayload(*aps* , *\*\*kwargs* ) |
|---|
| Bases: `object` Payload of an APNS message. Parameters: : - **aps** -- A `messaging.Aps` instance to be included in the payload. - **\*\*kwargs** -- Arbitrary keyword arguments to be included as custom fields in the payload (optional). |

| ### AndroidConfig class firebase_admin.messaging.AndroidConfig(*collapse_key: str \| None = None* , *priority: str \| None = None* , *ttl: int \| float \| timedelta \| None = None* , *restricted_package_name: str \| None = None* , *data: Dict\[str, str\] \| None = None* , *notification: [AndroidNotification](https://firebase.google.com/docs/reference/admin/python/firebase_admin.messaging#firebase_admin.messaging.AndroidNotification "firebase_admin._messaging_utils.AndroidNotification") \| None = None* , *fcm_options: [AndroidFCMOptions](https://firebase.google.com/docs/reference/admin/python/firebase_admin.messaging#firebase_admin.messaging.AndroidFCMOptions "firebase_admin._messaging_utils.AndroidFCMOptions") \| None = None* , *direct_boot_ok: bool \| None = None* , *bandwidth_constrained_ok: bool \| None = None* , *restricted_satellite_ok: bool \| None = None* ) |
|---|
| Bases: `object` Android-specific options that can be included in a message. Parameters: : - **collapse_key** -- Collapse key string for the message (optional). This is an identifier for a group of messages that can be collapsed, so that only the last message is sent when delivery can be resumed. A maximum of 4 different collapse keys may be active at a given time. - **priority** -- Priority of the message (optional). Must be one of `high` or `normal`. - **ttl** -- The time-to-live duration of the message (optional). This can be specified as a numeric seconds value or a `datetime.timedelta` instance. - **restricted_package_name** -- The package name of the application where the registration tokens must match in order to receive the message (optional). - **data** -- A dictionary of data fields (optional). All keys and values in the dictionary must be strings. When specified, overrides any data fields set via `Message.data`. - **notification** -- A `messaging.AndroidNotification` to be included in the message (optional). - **fcm_options** -- A `messaging.AndroidFCMOptions` to be included in the message (optional). - **direct_boot_ok** -- A boolean indicating whether messages will be allowed to be delivered to the app while the device is in direct boot mode (optional). - **bandwidth_constrained_ok** -- A boolean indicating whether messages will be allowed to be delivered to the app while the device is on a bandwidth constrained network (optional). - **restricted_satellite_ok** -- A boolean indicating whether messages will be allowed to be delivered to the app while the device is on a restricted satellite network (optional). |

| ### AndroidFCMOptions class firebase_admin.messaging.AndroidFCMOptions(*analytics_label=None* ) |
|---|
| Bases: `object` Options for features provided by the FCM SDK for Android. Parameters: :   **analytics_label** -- contains additional options for features provided by the FCM Android SDK (optional). |

| ### AndroidNotification class firebase_admin.messaging.AndroidNotification(*title=None* , *body=None* , *icon=None* , *color=None* , *sound=None* , *tag=None* , *click_action=None* , *body_loc_key=None* , *body_loc_args=None* , *title_loc_key=None* , *title_loc_args=None* , *channel_id=None* , *image=None* , *ticker=None* , *sticky=None* , *event_timestamp=None* , *local_only=None* , *priority=None* , *vibrate_timings_millis=None* , *default_vibrate_timings=None* , *default_sound=None* , *light_settings=None* , *default_light_settings=None* , *visibility=None* , *notification_count=None* , *proxy=None* ) |
|---|
| Bases: `object` Android-specific notification parameters. Parameters: : - **title** -- Title of the notification (optional). If specified, overrides the title set via `messaging.Notification`. - **body** -- Body of the notification (optional). If specified, overrides the body set via `messaging.Notification`. - **icon** -- Icon of the notification (optional). - **color** -- Color of the notification icon expressed in `#rrggbb` form (optional). - **sound** -- Sound to be played when the device receives the notification (optional). This is usually the file name of the sound resource. - **tag** -- Tag of the notification (optional). This is an identifier used to replace existing notifications in the notification drawer. If not specified, each request creates a new notification. - **click_action** -- The action associated with a user click on the notification (optional). If specified, an activity with a matching intent filter is launched when a user clicks on the notification. - **body_loc_key** -- Key of the body string in the app's string resources to use to localize the body text (optional). - **body_loc_args** -- A list of resource keys that will be used in place of the format specifiers in `body_loc_key` (optional). - **title_loc_key** -- Key of the title string in the app's string resources to use to localize the title text (optional). - **title_loc_args** -- A list of resource keys that will be used in place of the format specifiers in `title_loc_key` (optional). - **channel_id** -- channel_id of the notification (optional). - **image** -- Image url of the notification (optional). - **ticker** -- Sets the `ticker` text, which is sent to accessibility services. Prior to API level 21 (Lollipop), sets the text that is displayed in the status bar when the notification first arrives (optional). - **sticky** -- When set to `False` or unset, the notification is automatically dismissed when the user clicks it in the panel. When set to `True`, the notification persists even when the user clicks it (optional). - **event_timestamp** -- For notifications that inform users about events with an absolute time reference, sets the time that the event in the notification occurred as a `datetime.datetime` instance. If the `datetime.datetime` instance is naive, it defaults to be in the UTC timezone. Notifications in the panel are sorted by this time (optional). - **local_only** -- Sets whether or not this notification is relevant only to the current device. Some notifications can be bridged to other devices for remote display, such as a Wear OS watch. This hint can be set to recommend this notification not be bridged (optional). See Wear OS guides: <https://developer.android.com/training/wearables/notifications/bridger#existing-method-of-preventing-bridging> - **priority** -- Sets the relative priority for this notification. Low-priority notifications may be hidden from the user in certain situations. Note this priority differs from `AndroidMessagePriority`. This priority is processed by the client after the message has been delivered. Whereas `AndroidMessagePriority` is an FCM concept that controls when the message is delivered (optional). Must be one of `default`, `min`, `low`, `high`, `max` or `normal`. - **vibrate_timings_millis** -- Sets the vibration pattern to use. Pass in an array of milliseconds to turn the vibrator on or off. The first value indicates the duration to wait before turning the vibrator on. The next value indicates the duration to keep the vibrator on. Subsequent values alternate between duration to turn the vibrator off and to turn the vibrator on. If `vibrate_timings` is set and `default_vibrate_timings` is set to `True`, the default value is used instead of the user-specified `vibrate_timings`. - **default_vibrate_timings** -- If set to `True`, use the Android framework's default vibrate pattern for the notification (optional). Default values are specified in `config.xml` <https://android.googlesource.com/platform/frameworks/base/+/master/core/res/res/values/config.xml>. If `default_vibrate_timings` is set to `True` and `vibrate_timings` is also set, the default value is used instead of the user-specified `vibrate_timings`. - **default_sound** -- If set to `True`, use the Android framework's default sound for the notification (optional). Default values are specified in `config.xml` <https://android.googlesource.com/platform/frameworks/base/+/master/core/res/res/values/config.xml> - **light_settings** -- Settings to control the notification's LED blinking rate and color if LED is available on the device. The total blinking time is controlled by the OS (optional). - **default_light_settings** -- If set to `True`, use the Android framework's default LED light settings for the notification. Default values are specified in `config.xml` <https://android.googlesource.com/platform/frameworks/base/+/master/core/res/res/values/config.xml>. If `default_light_settings` is set to `True` and `light_settings` is also set, the user-specified `light_settings` is used instead of the default value. - **visibility** -- Sets the visibility of the notification. Must be either `private`, `public`, or `secret`. If unspecified, it remains undefined in the Admin SDK, and defers to the FCM backend's default mapping. - **notification_count** -- Sets the number of items this notification represents. May be displayed as a badge count for Launchers that support badging. See `NotificationBadge` <https://developer.android.com/training/notify-user/badges>. For example, this might be useful if you're using just one notification to represent multiple new messages but you want the count here to represent the number of total new messages. If zero or unspecified, systems that support badging use the default, which is to increment a number displayed on the long-press menu each time a new notification arrives. - **proxy** -- Sets if the notification may be proxied. Must be one of `allow`, `deny`, or `if_priority_lowered`. If unspecified, it remains undefined in the Admin SDK, and defers to the FCM backend's default mapping. |

| ### Aps class firebase_admin.messaging.Aps(*alert=None* , *badge=None* , *sound=None* , *content_available=None* , *category=None* , *thread_id=None* , *mutable_content=None* , *custom_data=None* ) |
|---|
| Bases: `object` Aps dictionary to be included in an APNS payload. Parameters: : - **alert** -- A string or a `messaging.ApsAlert` instance (optional). - **badge** -- A number representing the badge to be displayed with the message (optional). - **sound** -- Name of the sound file to be played with the message or a `messaging.CriticalSound` instance (optional). - **content_available** -- A boolean indicating whether to configure a background update notification (optional). - **category** -- String identifier representing the message type (optional). - **thread_id** -- An app-specific string identifier for grouping messages (optional). - **mutable_content** -- A boolean indicating whether to support mutating notifications at the client using app extensions (optional). - **custom_data** -- A dict of custom key-value pairs to be included in the Aps dictionary (optional). |

| ### ApsAlert class firebase_admin.messaging.ApsAlert(*title=None* , *subtitle=None* , *body=None* , *loc_key=None* , *loc_args=None* , *title_loc_key=None* , *title_loc_args=None* , *action_loc_key=None* , *launch_image=None* , *custom_data=None* ) |
|---|
| Bases: `object` An alert that can be included in `messaging.Aps`. Parameters: : - **title** -- Title of the alert (optional). If specified, overrides the title set via `messaging.Notification`. - **subtitle** -- Subtitle of the alert (optional). - **body** -- Body of the alert (optional). If specified, overrides the body set via `messaging.Notification`. - **loc_key** -- Key of the body string in the app's string resources to use to localize the body text (optional). - **loc_args** -- A list of resource keys that will be used in place of the format specifiers in `loc_key` (optional). - **title_loc_key** -- Key of the title string in the app's string resources to use to localize the title text (optional). - **title_loc_args** -- A list of resource keys that will be used in place of the format specifiers in `title_loc_key` (optional). - **action_loc_key** -- Key of the text in the app's string resources to use to localize the action button text (optional). - **launch_image** -- Image for the notification action (optional). - **custom_data** -- A dict of custom key-value pairs to be included in the ApsAlert dictionary (optional) |

### BatchResponse

class firebase_admin.messaging.BatchResponse(*responses: List\[[SendResponse](https://firebase.google.com/docs/reference/admin/python/firebase_admin.messaging#firebase_admin.messaging.SendResponse "firebase_admin.messaging.SendResponse")\]* ) Bases: `object`

The response received from a batch request to the FCM API.
property failure_count: int property responses: List\[[SendResponse](https://firebase.google.com/docs/reference/admin/python/firebase_admin.messaging#firebase_admin.messaging.SendResponse "firebase_admin.messaging.SendResponse")\] A list of `messaging.SendResponse` objects (possibly empty).
property success_count: int

| ### CriticalSound class firebase_admin.messaging.CriticalSound(*name* , *critical=None* , *volume=None* ) |
|---|
| Bases: `object` Critical alert sound configuration that can be included in `messaging.Aps`. Parameters: : - **name** -- The name of a sound file in your app's main bundle or in the `Library/Sounds` folder of your app's container directory. Specify the string `default` to play the system sound. - **critical** -- Set to `True` to set the critical alert flag on the sound configuration (optional). - **volume** -- The volume for the critical alert's sound. Must be a value between 0.0 (silent) and 1.0 (full volume) (optional). |

### ErrorInfo

class firebase_admin.messaging.ErrorInfo(*index* , *reason* ) Bases: `object`

An error encountered when performing a topic management operation.
property index Index of the registration token to which this error is related to.
property reason String describing the nature of the error.

| ### FCMOptions class firebase_admin.messaging.FCMOptions(*analytics_label=None* ) |
|---|
| Bases: `object` Options for features provided by SDK. Parameters: :   **analytics_label** -- contains additional options to use across all platforms (optional). |

| ### LightSettings class firebase_admin.messaging.LightSettings(*color* , *light_on_duration_millis* , *light_off_duration_millis* ) |
|---|
| Bases: `object` Represents settings to control notification LED that can be included in a `messaging.AndroidNotification`. Parameters: : - **color** -- Sets the color of the LED in `#rrggbb` or `#rrggbbaa` format. - **light_on_duration_millis** -- Along with `light_off_duration`, defines the blink rate of LED flashes. - **light_off_duration_millis** -- Along with `light_on_duration`, defines the blink rate of LED flashes. |

| ### Message class firebase_admin.messaging.Message(*data=None* , *notification=None* , *android=None* , *webpush=None* , *apns=None* , *fcm_options=None* , *token=None* , *topic=None* , *condition=None* , *fid=None* ) |
|---|
| Bases: `object` A message that can be sent via Firebase Cloud Messaging. Contains payload information as well as recipient information. In particular, the message must contain exactly one of fid, token, topic or condition fields. Parameters: : - **data** -- A dictionary of data fields (optional). All keys and values in the dictionary must be strings. - **notification** -- An instance of `messaging.Notification` (optional). - **android** -- An instance of `messaging.AndroidConfig` (optional). - **webpush** -- An instance of `messaging.WebpushConfig` (optional). - **apns** -- An instance of `messaging.ApnsConfig` (optional). - **fcm_options** -- An instance of `messaging.FCMOptions` (optional). - **fid** -- The Firebase installation ID of an FCM registered app instance to which the message should be sent (optional). - **token** -- Deprecated. Use `fid` instead. - **topic** -- Name of the FCM topic to which the message should be sent (optional). Topic name may contain the `/topics/` prefix. - **condition** -- The FCM condition to which the message should be sent (optional). |

| ### MulticastMessage class firebase_admin.messaging.MulticastMessage(*tokens=None* , *data=None* , *notification=None* , *android=None* , *webpush=None* , *apns=None* , *fcm_options=None* , *fids=None* ) |
|---|
| Bases: `object` A message that can be sent to multiple tokens or fids via Firebase Cloud Messaging. Parameters: : - **tokens** -- Deprecated. Use `fids` instead (optional). - **data** -- A dictionary of data fields (optional). All keys and values in the dictionary must be strings. - **notification** -- An instance of `messaging.Notification` (optional). - **android** -- An instance of `messaging.AndroidConfig` (optional). - **webpush** -- An instance of `messaging.WebpushConfig` (optional). - **apns** -- An instance of `messaging.ApnsConfig` (optional). - **fcm_options** -- An instance of `messaging.FCMOptions` (optional). - **fids** -- A list of Firebase Installation IDs of targeted app instances (optional). |

| ### Notification class firebase_admin.messaging.Notification(*title=None* , *body=None* , *image=None* ) |
|---|
| Bases: `object` A notification that can be included in a message. Parameters: : - **title** -- Title of the notification (optional). - **body** -- Body of the notification (optional). - **image** -- Image url of the notification (optional) |

### SendResponse

class firebase_admin.messaging.SendResponse(*resp* , *exception* ) Bases: `object`

The response received from an individual batched request to the FCM API.
property exception A `FirebaseError` if an error occurs while sending the message to the FCM service.
property message_id A message ID string that uniquely identifies the message.
property success A boolean indicating if the request was successful.

### TopicManagementResponse

class firebase_admin.messaging.TopicManagementResponse(*resp* ) Bases: `object`

The response received from a topic management operation.
property errors A list of `messaging.ErrorInfo` objects (possibly empty).
property failure_count Number of tokens that could not be subscribed or unsubscribed due to errors.
property success_count Number of tokens that were successfully subscribed or unsubscribed.

| ### WebpushConfig class firebase_admin.messaging.WebpushConfig(*headers=None* , *data=None* , *notification=None* , *fcm_options=None* ) |
|---|
| Bases: `object` Webpush-specific options that can be included in a message. Parameters: : - **headers** -- A dictionary of headers (optional). Refer [Webpush Specification](https://tools.ietf.org/html/rfc8030#section-5) for supported headers. - **data** -- A dictionary of data fields (optional). All keys and values in the dictionary must be strings. When specified, overrides any data fields set via `Message.data`. - **notification** -- A `messaging.WebpushNotification` to be included in the message (optional). - **fcm_options** -- A `messaging.WebpushFCMOptions` instance to be included in the message (optional). |

| ### WebpushFCMOptions class firebase_admin.messaging.WebpushFCMOptions(*link=None* ) |
|---|
| Bases: `object` Options for features provided by the FCM SDK for Web. Parameters: :   **link** -- The link to open when the user clicks on the notification. Must be an HTTPS URL (optional). |

| ### WebpushNotification class firebase_admin.messaging.WebpushNotification(*title=None* , *body=None* , *icon=None* , *actions=None* , *badge=None* , *data=None* , *direction=None* , *image=None* , *language=None* , *renotify=None* , *require_interaction=None* , *silent=None* , *tag=None* , *timestamp_millis=None* , *vibrate=None* , *custom_data=None* ) |
|---|
| Bases: `object` Webpush-specific notification parameters. Refer to the [Notification Reference](https://developer.mozilla.org/en-US/docs/Web/API/notification/Notification) for more information. Parameters: : - **title** -- Title of the notification (optional). If specified, overrides the title set via `messaging.Notification`. - **body** -- Body of the notification (optional). If specified, overrides the body set via `messaging.Notification`. - **icon** -- Icon URL of the notification (optional). - **actions** -- A list of `messaging.WebpushNotificationAction` instances (optional). - **badge** -- URL of the image used to represent the notification when there is not enough space to display the notification itself (optional). - **data** -- Any arbitrary JSON data that should be associated with the notification (optional). - **direction** -- The direction in which to display the notification (optional). Must be either 'auto', 'ltr' or 'rtl'. - **image** -- The URL of an image to be displayed in the notification (optional). - **language** -- Notification language (optional). - **renotify** -- A boolean indicating whether the user should be notified after a new notification replaces an old one (optional). - **require_interaction** -- A boolean indicating whether a notification should remain active until the user clicks or dismisses it, rather than closing automatically (optional). - **silent** -- `True` to indicate that the notification should be silent (optional). - **tag** -- An identifying tag on the notification (optional). - **timestamp_millis** -- A timestamp value in milliseconds on the notification (optional). - **vibrate** -- A vibration pattern for the device's vibration hardware to emit when the notification fires (optional). The pattern is specified as an integer array. - **custom_data** -- A dict of custom key-value pairs to be included in the notification (optional) |

| ### WebpushNotificationAction class firebase_admin.messaging.WebpushNotificationAction(*action* , *title* , *icon=None* ) |
|---|
| Bases: `object` An action available to the users when the notification is presented. Parameters: : - **action** -- Action string. - **title** -- Title string. - **icon** -- Icon URL for the action (optional). |

## Functions

| ### send firebase_admin.messaging.send(*message: [Message](https://firebase.google.com/docs/reference/admin/python/firebase_admin.messaging#firebase_admin.messaging.Message "firebase_admin._messaging_encoder.Message")* , *dry_run: bool = False* , *app: [App](https://firebase.google.com/docs/reference/admin/python/firebase_admin#firebase_admin.App "firebase_admin.App") \| None = None* ) → str |
|---|
| Sends the given message via Firebase Cloud Messaging (FCM). If the `dry_run` mode is enabled, the message will not be actually delivered to the recipients. Instead, FCM performs all the usual validations and emulates the send operation. Parameters: : - **message** -- An instance of `messaging.Message`. - **dry_run** -- A boolean indicating whether to run the operation in dry run mode (optional). - **app** -- An App instance (optional). Returns: :   A message ID string that uniquely identifies the sent message. Return type: :   string Raises: : - [**FirebaseError**](https://firebase.google.com/docs/reference/admin/python/firebase_admin.exceptions#firebase_admin.exceptions.FirebaseError "firebase_admin.exceptions.FirebaseError") -- If an error occurs while sending the message to the FCM service. - **ValueError** -- If the input arguments are invalid. |

| ### send_each firebase_admin.messaging.send_each(*messages: List\[[Message](https://firebase.google.com/docs/reference/admin/python/firebase_admin.messaging#firebase_admin.messaging.Message "firebase_admin._messaging_encoder.Message")\]* , *dry_run: bool = False* , *app: [App](https://firebase.google.com/docs/reference/admin/python/firebase_admin#firebase_admin.App "firebase_admin.App") \| None = None* ) → [BatchResponse](https://firebase.google.com/docs/reference/admin/python/firebase_admin.messaging#firebase_admin.messaging.BatchResponse "firebase_admin.messaging.BatchResponse") |
|---|
| Sends each message in the given list via Firebase Cloud Messaging. If the `dry_run` mode is enabled, the message will not be actually delivered to the recipients. Instead, FCM performs all the usual validations and emulates the send operation. Parameters: : - **messages** -- A list of `messaging.Message` instances. - **dry_run** -- A boolean indicating whether to run the operation in dry run mode (optional). - **app** -- An App instance (optional). Returns: :   A `messaging.BatchResponse` instance. Return type: :   [BatchResponse](https://firebase.google.com/docs/reference/admin/python/firebase_admin.messaging#firebase_admin.messaging.BatchResponse "firebase_admin.messaging.BatchResponse") Raises: : - [**FirebaseError**](https://firebase.google.com/docs/reference/admin/python/firebase_admin.exceptions#firebase_admin.exceptions.FirebaseError "firebase_admin.exceptions.FirebaseError") -- If an error occurs while sending the message to the FCM service. - **ValueError** -- If the input arguments are invalid. |

| ### send_each_async async firebase_admin.messaging.send_each_async(*messages: List\[[Message](https://firebase.google.com/docs/reference/admin/python/firebase_admin.messaging#firebase_admin.messaging.Message "firebase_admin._messaging_encoder.Message")\]* , *dry_run: bool = False* , *app: [App](https://firebase.google.com/docs/reference/admin/python/firebase_admin#firebase_admin.App "firebase_admin.App") \| None = None* ) → [BatchResponse](https://firebase.google.com/docs/reference/admin/python/firebase_admin.messaging#firebase_admin.messaging.BatchResponse "firebase_admin.messaging.BatchResponse") |
|---|
| Sends each message in the given list asynchronously via Firebase Cloud Messaging. If the `dry_run` mode is enabled, the message will not be actually delivered to the recipients. Instead, FCM performs all the usual validations and emulates the send operation. Parameters: : - **messages** -- A list of `messaging.Message` instances. - **dry_run** -- A boolean indicating whether to run the operation in dry run mode (optional). - **app** -- An App instance (optional). Returns: :   A `messaging.BatchResponse` instance. Return type: :   [BatchResponse](https://firebase.google.com/docs/reference/admin/python/firebase_admin.messaging#firebase_admin.messaging.BatchResponse "firebase_admin.messaging.BatchResponse") Raises: : - [**FirebaseError**](https://firebase.google.com/docs/reference/admin/python/firebase_admin.exceptions#firebase_admin.exceptions.FirebaseError "firebase_admin.exceptions.FirebaseError") -- If an error occurs while sending the message to the FCM service. - **ValueError** -- If the input arguments are invalid. |

| ### send_each_for_multicast firebase_admin.messaging.send_each_for_multicast(*multicast_message* , *dry_run=False* , *app=None* ) |
|---|
| Sends the given multicast message to each token or fid via Firebase Cloud Messaging (FCM). If the `dry_run` mode is enabled, the message will not be actually delivered to the recipients. Instead, FCM performs all the usual validations and emulates the send operation. Parameters: : - **multicast_message** -- An instance of `messaging.MulticastMessage`. - **dry_run** -- A boolean indicating whether to run the operation in dry run mode (optional). - **app** -- An App instance (optional). Returns: :   A `messaging.BatchResponse` instance. Return type: :   [BatchResponse](https://firebase.google.com/docs/reference/admin/python/firebase_admin.messaging#firebase_admin.messaging.BatchResponse "firebase_admin.messaging.BatchResponse") Raises: : - [**FirebaseError**](https://firebase.google.com/docs/reference/admin/python/firebase_admin.exceptions#firebase_admin.exceptions.FirebaseError "firebase_admin.exceptions.FirebaseError") -- If an error occurs while sending the message to the FCM service. - **ValueError** -- If the input arguments are invalid. |

| ### send_each_for_multicast_async async firebase_admin.messaging.send_each_for_multicast_async(*multicast_message: [MulticastMessage](https://firebase.google.com/docs/reference/admin/python/firebase_admin.messaging#firebase_admin.messaging.MulticastMessage "firebase_admin._messaging_encoder.MulticastMessage")* , *dry_run: bool = False* , *app: [App](https://firebase.google.com/docs/reference/admin/python/firebase_admin#firebase_admin.App "firebase_admin.App") \| None = None* ) → [BatchResponse](https://firebase.google.com/docs/reference/admin/python/firebase_admin.messaging#firebase_admin.messaging.BatchResponse "firebase_admin.messaging.BatchResponse") |
|---|
| Sends the given multicast message to each token or fid asynchronously via Firebase Cloud Messaging (FCM). If the `dry_run` mode is enabled, the message will not be actually delivered to the recipients. Instead, FCM performs all the usual validations and emulates the send operation. Parameters: : - **multicast_message** -- An instance of `messaging.MulticastMessage`. - **dry_run** -- A boolean indicating whether to run the operation in dry run mode (optional). - **app** -- An App instance (optional). Returns: :   A `messaging.BatchResponse` instance. Return type: :   [BatchResponse](https://firebase.google.com/docs/reference/admin/python/firebase_admin.messaging#firebase_admin.messaging.BatchResponse "firebase_admin.messaging.BatchResponse") Raises: : - [**FirebaseError**](https://firebase.google.com/docs/reference/admin/python/firebase_admin.exceptions#firebase_admin.exceptions.FirebaseError "firebase_admin.exceptions.FirebaseError") -- If an error occurs while sending the message to the FCM service. - **ValueError** -- If the input arguments are invalid. |

| ### subscribe_to_topic firebase_admin.messaging.subscribe_to_topic(*tokens: str \| List\[str\]* , *topic: str* , *app: [App](https://firebase.google.com/docs/reference/admin/python/firebase_admin#firebase_admin.App "firebase_admin.App") \| None = None* ) → [TopicManagementResponse](https://firebase.google.com/docs/reference/admin/python/firebase_admin.messaging#firebase_admin.messaging.TopicManagementResponse "firebase_admin.messaging.TopicManagementResponse") |
|---|
| Subscribes a list of registration tokens to an FCM topic. Parameters: : - **tokens** -- A non-empty list of device registration tokens. List may not have more than 1000 elements. - **topic** -- Name of the topic to subscribe to. May contain the `/topics/` prefix. - **app** -- An App instance (optional). Returns: :   A `TopicManagementResponse` instance. Return type: :   [TopicManagementResponse](https://firebase.google.com/docs/reference/admin/python/firebase_admin.messaging#firebase_admin.messaging.TopicManagementResponse "firebase_admin.messaging.TopicManagementResponse") Raises: : - [**FirebaseError**](https://firebase.google.com/docs/reference/admin/python/firebase_admin.exceptions#firebase_admin.exceptions.FirebaseError "firebase_admin.exceptions.FirebaseError") -- If an error occurs while communicating with the FCM service. - **ValueError** -- If the input arguments are invalid. |

| ### subscribe_to_topic_async async firebase_admin.messaging.subscribe_to_topic_async(*tokens: str \| List\[str\]* , *topic: str* , *app: [App](https://firebase.google.com/docs/reference/admin/python/firebase_admin#firebase_admin.App "firebase_admin.App") \| None = None* ) → [TopicManagementResponse](https://firebase.google.com/docs/reference/admin/python/firebase_admin.messaging#firebase_admin.messaging.TopicManagementResponse "firebase_admin.messaging.TopicManagementResponse") |
|---|
| Subscribes a list of registration tokens to an FCM topic asynchronously. Parameters: : - **tokens** -- A non-empty list of device registration tokens. List may not have more than 1000 elements. - **topic** -- Name of the topic to subscribe to. May contain the `/topics/` prefix. - **app** -- An App instance (optional). Returns: :   A `TopicManagementResponse` instance. Return type: :   [TopicManagementResponse](https://firebase.google.com/docs/reference/admin/python/firebase_admin.messaging#firebase_admin.messaging.TopicManagementResponse "firebase_admin.messaging.TopicManagementResponse") Raises: : - [**FirebaseError**](https://firebase.google.com/docs/reference/admin/python/firebase_admin.exceptions#firebase_admin.exceptions.FirebaseError "firebase_admin.exceptions.FirebaseError") -- If an error occurs while communicating with the FCM service. - **ValueError** -- If the input arguments are invalid. |

| ### subscribe_to_topic_legacy firebase_admin.messaging.subscribe_to_topic_legacy(*tokens: str \| List\[str\]* , *topic: str* , *app: [App](https://firebase.google.com/docs/reference/admin/python/firebase_admin#firebase_admin.App "firebase_admin.App") \| None = None* ) → [TopicManagementResponse](https://firebase.google.com/docs/reference/admin/python/firebase_admin.messaging#firebase_admin.messaging.TopicManagementResponse "firebase_admin.messaging.TopicManagementResponse") |
|---|
| Subscribes a list of registration tokens to an FCM topic using the legacy Instance ID API. subscribe_to_topic_legacy is deprecated. Use subscribe_to_topic instead. Parameters: : - **tokens** -- A non-empty list of device registration tokens. List may not have more than 1000 elements. - **topic** -- Name of the topic to subscribe to. May contain the `/topics/` prefix. - **app** -- An App instance (optional). Returns: :   A `TopicManagementResponse` instance. Return type: :   [TopicManagementResponse](https://firebase.google.com/docs/reference/admin/python/firebase_admin.messaging#firebase_admin.messaging.TopicManagementResponse "firebase_admin.messaging.TopicManagementResponse") Raises: : - [**FirebaseError**](https://firebase.google.com/docs/reference/admin/python/firebase_admin.exceptions#firebase_admin.exceptions.FirebaseError "firebase_admin.exceptions.FirebaseError") -- If an error occurs while communicating with instance ID service. - **ValueError** -- If the input arguments are invalid. |

| ### unsubscribe_from_topic firebase_admin.messaging.unsubscribe_from_topic(*tokens: str \| List\[str\]* , *topic: str* , *app: [App](https://firebase.google.com/docs/reference/admin/python/firebase_admin#firebase_admin.App "firebase_admin.App") \| None = None* ) → [TopicManagementResponse](https://firebase.google.com/docs/reference/admin/python/firebase_admin.messaging#firebase_admin.messaging.TopicManagementResponse "firebase_admin.messaging.TopicManagementResponse") |
|---|
| Unsubscribes a list of registration tokens from an FCM topic. Parameters: : - **tokens** -- A non-empty list of device registration tokens. List may not have more than 1000 elements. - **topic** -- Name of the topic to unsubscribe from. May contain the `/topics/` prefix. - **app** -- An App instance (optional). Returns: :   A `TopicManagementResponse` instance. Return type: :   [TopicManagementResponse](https://firebase.google.com/docs/reference/admin/python/firebase_admin.messaging#firebase_admin.messaging.TopicManagementResponse "firebase_admin.messaging.TopicManagementResponse") Raises: : - [**FirebaseError**](https://firebase.google.com/docs/reference/admin/python/firebase_admin.exceptions#firebase_admin.exceptions.FirebaseError "firebase_admin.exceptions.FirebaseError") -- If an error occurs while communicating with the FCM service. - **ValueError** -- If the input arguments are invalid. |

| ### unsubscribe_from_topic_async async firebase_admin.messaging.unsubscribe_from_topic_async(*tokens: str \| List\[str\]* , *topic: str* , *app: [App](https://firebase.google.com/docs/reference/admin/python/firebase_admin#firebase_admin.App "firebase_admin.App") \| None = None* ) → [TopicManagementResponse](https://firebase.google.com/docs/reference/admin/python/firebase_admin.messaging#firebase_admin.messaging.TopicManagementResponse "firebase_admin.messaging.TopicManagementResponse") |
|---|
| Unsubscribes a list of registration tokens from an FCM topic asynchronously. Parameters: : - **tokens** -- A non-empty list of device registration tokens. List may not have more than 1000 elements. - **topic** -- Name of the topic to unsubscribe from. May contain the `/topics/` prefix. - **app** -- An App instance (optional). Returns: :   A `TopicManagementResponse` instance. Return type: :   [TopicManagementResponse](https://firebase.google.com/docs/reference/admin/python/firebase_admin.messaging#firebase_admin.messaging.TopicManagementResponse "firebase_admin.messaging.TopicManagementResponse") Raises: : - [**FirebaseError**](https://firebase.google.com/docs/reference/admin/python/firebase_admin.exceptions#firebase_admin.exceptions.FirebaseError "firebase_admin.exceptions.FirebaseError") -- If an error occurs while communicating with the FCM service. - **ValueError** -- If the input arguments are invalid. |

| ### unsubscribe_from_topic_legacy firebase_admin.messaging.unsubscribe_from_topic_legacy(*tokens: str \| List\[str\]* , *topic: str* , *app: [App](https://firebase.google.com/docs/reference/admin/python/firebase_admin#firebase_admin.App "firebase_admin.App") \| None = None* ) → [TopicManagementResponse](https://firebase.google.com/docs/reference/admin/python/firebase_admin.messaging#firebase_admin.messaging.TopicManagementResponse "firebase_admin.messaging.TopicManagementResponse") |
|---|
| Unsubscribes a list of registration tokens from an FCM topic using the legacy Instance ID API. unsubscribe_from_topic_legacy is deprecated. Use unsubscribe_from_topic instead. Parameters: : - **tokens** -- A non-empty list of device registration tokens. List may not have more than 1000 elements. - **topic** -- Name of the topic to unsubscribe from. May contain the `/topics/` prefix. - **app** -- An App instance (optional). Returns: :   A `TopicManagementResponse` instance. Return type: :   [TopicManagementResponse](https://firebase.google.com/docs/reference/admin/python/firebase_admin.messaging#firebase_admin.messaging.TopicManagementResponse "firebase_admin.messaging.TopicManagementResponse") Raises: : - [**FirebaseError**](https://firebase.google.com/docs/reference/admin/python/firebase_admin.exceptions#firebase_admin.exceptions.FirebaseError "firebase_admin.exceptions.FirebaseError") -- If an error occurs while communicating with instance ID service. - **ValueError** -- If the input arguments are invalid. |