{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":[]},"redocly_category":"Integrations","type":"markdown"},"seo":{"title":"Firebase Cloud Messaging Streaming Output Integration","description":"Treasure Data Product Documentation · Collect and Unify · Segment and Activate · Experiment and Analyze · Decisioning Automate with AI Scale and Trust.","siteUrl":"https://docs.treasuredata.com","lang":"en-US","llmstxt":{"hide":false,"sections":[{"title":"Table of contents","includeFiles":["**/*"],"excludeFiles":[]}],"excludeFiles":[]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"firebase-cloud-messaging-streaming-output-integration","__idx":0},"children":["Firebase Cloud Messaging Streaming Output Integration"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Firebase Cloud Messaging (FCM) is ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["cross-platform messaging solution that allows to reliably send messages."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["With this integration you can send messages to the channels such as email, SMS or Line with real-time trigger activations"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"prerequisites","__idx":1},"children":["Prerequisites"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Basic knowledge of Treasure Data"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Basic knowledge of FCM, including knowledge project, app in ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://firebase.google.com/docs/projects/learn-more"},"children":["FCM website"]}," features"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Login credentials for your Firebase Cloud Messaging account"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"use-cases","__idx":2},"children":["Use Cases"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The primary use case for this streaming integration is to incorporate it into a real-time activation workflow to:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Trigger a message delivery to FCM"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Here is an overview of how to configure that workflow to trigger a delivery:"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["On the FCM website, learn about how to create a project ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://firebase.google.com/docs/projects/learn-more#setting_up_a_firebase_project_and_registering_apps"},"children":["Firebase Project"]}," features necessary to send messages."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["On the FCM console, select your project and create a new app according to your platform."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["On the FCM console, select your app and go to app configuration. Get the app config as ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["google-services.json"]}," in JSON format."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Create an authentication for this integration to communicate with Firebase Cloud Messaging."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["In a Real-time Journey, select this authentication for a new triggered activation."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"requirements-and-limitations","__idx":3},"children":["Requirements and Limitations"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["This connector limitation follow the FCM limitations. Please refer to ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://firebase.google.com/docs/cloud-messaging/throttling-and-quotas"},"children":["FCM Quotas and Limits"]},"."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"static-ip-address-of-treasure-data-integration","__idx":4},"children":["Static IP Address of Treasure Data Integration"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If your security policy requires IP whitelisting, you must add Treasure Data's IP addresses to your allowlist to ensure a successful connection."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Please find the complete list of static IP addresses, organized by region, at the following ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/apis/endpoints/ip-addresses-integrations-result-workers"},"children":["document"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"firebase-cloud-messaging-streaming-export-via-treasure-console","__idx":5},"children":["Firebase Cloud Messaging Streaming Export via Treasure Console"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You must create and configure the data connection in Treasure Data. As part of the data connection, you provide authentication credentials to access the integration."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"create-authentication","__idx":6},"children":["Create Authentication"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Perform the following steps to create a new authentication with a set of credentials."]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Select Integrations Hub."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Select Catalog."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Search for your Integration in the Catalog; hover your mouse over the icon and select Create Authentication."," ",{"$$mdtype":"Tag","name":"img","attributes":{"src":"/assets/fcm-streaming-logo.775e2c07547af866fae4df4d7920423fe358cfe1746dd9d365bdfa5ed4e1c559.171e1ecf.png","alt":"Firebase Cloud Messaging connector tile in the Integrations Hub Catalog"},"children":[]}," ",{"$$mdtype":"Tag","name":"img","attributes":{"src":"/assets/fcm-streaming-authen.e6379fd330eb1be6a624ce4203915373e48ea63c44bd1ecd62f9661979f968a6.171e1ecf.png","alt":"Create Authentication button displayed when hovering over the Firebase Cloud Messaging connector"},"children":[]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Ensure that the Credentials tab is selected and then enter credential information for the integration."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"new-authentication-fields","__idx":7},"children":["New Authentication Fields"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"img","attributes":{"src":"/assets/fcm-streaming-authen-detail.17bc9d9feab76aa4965a37b5f305a6f8bd9c064d3fd3170a8b8ff91611d96e6d.171e1ecf.png","alt":"Authentication configuration screen showing the Private Key In JSON File field"},"children":[]}]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Parameter"},"children":["Parameter"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Private Key In JSON File"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The JSON credential of the App in Project"]}]}]}]}]},{"$$mdtype":"Tag","name":"ol","attributes":{"start":6},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Select ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Continue"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Enter a name for your connection."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Select ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Done."]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["After configuring the Firebase Cloud Messaging Streaming integration, it is now available to be incorporated into real-time customer journey activations. See ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://docs.treasuredata.com/smart/project-product-documentation/creating-a-real-time-triggered-activation"},"children":["Creating a Real-time Triggered Activation"]}," for additional information."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"real-time-triggered-activation","__idx":8},"children":["Real-time Triggered Activation"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To create or update a triggered activation:"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Select the triggered activation you want to configure ",{"$$mdtype":"Tag","name":"img","attributes":{"src":"/assets/triggeredactivation.66e546b8c4cc774c0bdd804d0d099b63cf12b1916181d85d7c715be95bd61810.9e7171ae.png","alt":""},"children":[]},"."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"img","attributes":{"src":"/assets/fcm-streaming-basic-activation-config.7302db891dcfdca12a3de454a437eb2ddeb4859a9e454dea10b7df288ddb2e23.171e1ecf.png","alt":""},"children":[]}]},{"$$mdtype":"Tag","name":"ol","attributes":{"start":2},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["In the triggered activation window, select an activation from the Copy triggered activation from drop-down menu."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Enter a Triggered activation name."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Enter an Optional description of the activation."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["From the Authentication drop-down menu, select the authentication the activation should use."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Depending on the type of authentication you choose, the details you will need to provide will vary. Refer to the integration-specific table below for more information."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"img","attributes":{"src":"/assets/fcm-streaming-triggered-activation.2249016fb43343efe94ac30ee575a8544e9e6ef408fcd702a72a36c01b96b256.171e1ecf.png","alt":"Firebase Cloud Messaging Output Streaming Activation Config"},"children":[]}]},{"$$mdtype":"Tag","name":"ol","attributes":{"start":6},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Verify or provide the information required for the fields on the Details page."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["After the Details are configured, select ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Create"]}," or ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Update"]},"."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"integration-parameters","__idx":9},"children":["Integration Parameters"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Parameter"},"children":["Parameter"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Values"},"children":["Values"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Name"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["required - String"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The identifier of the message sent, in the format of projects/*/messages/{message_id}."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Target"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Token - Topic - Condition, default Token"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["We will support multiple targets, as provided by the Firebase platform: Token, Topic, Condition"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Data"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["required - JSON"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The Data will be sent with the message. Arbitrary key/value payload, which must be UTF-8 encoded."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Notification"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["required"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The notification payload to be sent with the message."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Android"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["optional"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The Android-specific options for the message."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["APNs"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["optional"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Apple Push Notification service options for the message"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["FCM Options"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["optional"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["FCM options for the message"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Maximum Number Of Retry"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["optional, default 3"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Number of retries before it gives up."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Initial Retry Delay"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["optional, default -2"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["How long wait before retrying the first one"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Retry Delay Multiple"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["optional, default 2"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The factor to multiply the delay after each retry"]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Union field target. Required. Input only. Target to send a message to. target can be only one of the following:"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Target"},"children":["Target"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Type"},"children":["Type"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Token"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Registration token to send a message to."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Topic"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Topic name to send a message to, e.g. \"weather\". Note: \"/topics/\" prefix should not be provided."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Condition"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Condition to send a message to, e.g. \"'foo' in topics && 'bar' in topics\"."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"retry-and-logging-logic","__idx":10},"children":["Retry and Logging Logic"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The connector will retry to send the request when it gets the status code 429, 500, 502, 503, or 504."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["If the request is sent successfully before the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Maximum Number of Retry"]}," is reached, the logging will show successfully."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["If the request still fails after reaching the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Maximum Number of Retry"]},", the connector will stop the job."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["We will see the error message and the status code in the client's activation table whenever the request sent fails."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Maximum Number of Retry"]}," can be configured in the Activation Config."]}]}]},"headings":[{"value":"Firebase Cloud Messaging Streaming Output Integration","id":"firebase-cloud-messaging-streaming-output-integration","depth":1},{"value":"Prerequisites","id":"prerequisites","depth":2},{"value":"Use Cases","id":"use-cases","depth":2},{"value":"Requirements and Limitations","id":"requirements-and-limitations","depth":2},{"value":"Static IP Address of Treasure Data Integration","id":"static-ip-address-of-treasure-data-integration","depth":2},{"value":"Firebase Cloud Messaging Streaming Export via Treasure Console","id":"firebase-cloud-messaging-streaming-export-via-treasure-console","depth":2},{"value":"Create Authentication","id":"create-authentication","depth":3},{"value":"New Authentication Fields","id":"new-authentication-fields","depth":3},{"value":"Real-time Triggered Activation","id":"real-time-triggered-activation","depth":3},{"value":"Integration Parameters","id":"integration-parameters","depth":3},{"value":"Retry and Logging Logic","id":"retry-and-logging-logic","depth":2}],"frontmatter":{"seo":{"title":"Firebase Cloud Messaging Streaming Output Integration"}},"lastModified":"2026-06-01T09:09:59.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/int/firebase-cloud-messaging-streaming-export-integration","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}