- Stitch >
- External Services >
- Built-In Services
Push Notifications (FCM)¶
On this page
MongoDB Stitch supports integrating mobile (Android and iOS) apps with the Firebase Cloud Messaging (FCM) service to provide push notifications. You configure and send notification messages from within the Stitch console, while clients register with FCM for messages sent to specific topics.
Rule Templates¶
Notifications Must Have a Specific Title¶
Notifications Must Be for a Specific Topic¶
Notifications Can Only Be Sent To a Limited Set of User IDs¶
Note
This template calls an example function named
allUserIdsAreValid
that does the following:
- Accepts the list of User IDs provided in the
userIds
argument - Queries MongoDB for a user document that matches the current user’s id
- Compares the provided phone number to the number listed in the user document
- Returns the boolean result of the comparison
Push Notification Rules¶
To specify rules for Push Notifications, click on the Rules tab on the Push Notifications page.
Note
Unlike other services in MongoDB Stitch, rules for push notifications are optional. By default, all push notifications are allowed. However, once you specify a rule, the restrictions imposed by that rule will take effect.
The following arguments are permitted in Push Notifications rules, and
they can be accessed with the "%%args"
expansion:
Field | Type | Description |
---|---|---|
userIds |
Array of strings. | The user ids of the message recipients. |
to |
String | The send-to topic. The recipients are the users who have opted into the topic. |
registrationTokens |
Array of strings. | The list of registration tokens for the devices receiving the multicast message. |
priority |
string | The priority of the notification. Value is either "high" or
"normal" . Corresponds to the priority option for HTTP
JSON messages via FCM. See the FCM HTTP protocol reference. |
collapseKey |
string | The collapse key associated with collapsible messages.
Corresponds to the collapse_key option for HTTP JSON
messages via FCM. See the FCM HTTP protocol reference. |
contentAvailable |
boolean | A flag that determines whether to awake idle client apps upon
receipt of the message. Corresponds to the content_available
option for HTTP JSON messages via FCM. See the FCM
HTTP protocol reference. |
mutableContent |
boolean | A flag that determines whether the notification content can be
modified before being displayed to the user. Corresponds to the
mutable_content option for HTTP JSON messages via FCM.
See the FCM HTTP protocol reference. |
timeToLive |
int | Maximum time (in milliseconds) to retain the message if the device is offline. Valid value range from 0 to 2419200. Corresponds to the |
data |
JSON document | Payload for data message. data document consists of custom
key-value pairs. Corresponds to the data option for HTTP
JSON messages via FCM. See the FCM HTTP protocol reference. |
notification |
JSON document | Payload for notification. notification document consists of
predefined fields. Corresponds to
the notification option for HTTP JSON messages via FCM.
See the FCM HTTP protocol reference. |
Notification Document Fields¶
The following table lists the fields of the notification
document
that is available as a permitted field for Push Notifications rules. To
access one of these fields in a rule, use
"%%args.notification.<field>"
.
Field | Type | Description |
---|---|---|
title |
string | The title of the notification. Corresponds to the title
option for HTTP JSON messages via FCM. See the FCM
HTTP protocol reference. |
body |
string | The body of the notification. Corresponds to the body
option for HTTP JSON messages via FCM. See the FCM
HTTP protocol reference. |
sound |
string | The sound to play upon receipt of the notification. Corresponds
to the sound option for HTTP JSON messages via FCM. See
the FCM HTTP protocol reference. |
clickAction |
string | The action to take when a user click on the notification.
Corresponds to the click_action option for HTTP JSON
messages via FCM. See the FCM HTTP protocol reference. |
bodyLocKey |
string | The key for localization of the body string. Corresponds to the
body_loc_key option for HTTP JSON messages via FCM. See
the FCM HTTP protocol reference. |
bodyLocArgs |
string | The string values to replace format specifiers for localization
in the body string. Corresponds to the body_loc_args option
for HTTP JSON messages via FCM. See the FCM
HTTP protocol reference. |
titleLocKey |
string | The key for localization of the title string. Corresponds to the
title_loc_key option for HTTP JSON messages via FCM. See
the FCM HTTP protocol reference. |
titleLocArgs |
string | The string values to replace format specifiers for localization
in the title string. Corresponds to the title_loc_args option
for HTTP JSON messages via FCM. See the FCM HTTP protocol
reference. |
icon |
string | For Android only. The notification icon. Corresponds to the
icon option for HTTP JSON messages via FCM. See
the FCM HTTP protocol reference. |
color |
string | For Android only. Indicates the icon color in #rrggbb format.
Corresponds to the color option for HTTP JSON messages
via FCM. See the FCM HTTP protocol reference. |
tag |
string | For Android only. If specification, each notification does not
result in a new entry but replaces an existing entry with the
specified tag. If unset, each notificaiton results in a new
entry. Corresponds to the tag option for HTTP JSON
messages via FCM. See the FCM HTTP protocol reference. |
badge |
string | For iOS only. The badge on client app home icon. Corresponds to
the badge option for HTTP JSON messages via FCM. See
the FCM HTTP protocol reference. |