# Firebase Cloud Messaging Streaming Output Integration Firebase Cloud Messaging (FCM) is **cross-platform messaging solution that allows to reliably send messages.** With this integration you can send messages to the channels such as email, SMS or Line with real-time trigger activations This feature is in BETA version. For more information, contact your Customer Success Representative. ## Prerequisites - Basic knowledge of Treasure Data - Basic knowledge of FCM, including knowledge project, app in [FCM website](https://firebase.google.com/docs/projects/learn-more) features - Login credentials for your Firebase Cloud Messaging account ## Use Cases The primary use case for this streaming integration is to incorporate it into a real-time activation workflow to: - Trigger a message delivery to FCM Here is an overview of how to configure that workflow to trigger a delivery: 1. On the FCM website, learn about how to create a project [Firebase Project](https://firebase.google.com/docs/projects/learn-more#setting_up_a_firebase_project_and_registering_apps) features necessary to send messages. 2. On the FCM console, select your project and create a new app according to your platform. 3. On the FCM console, select your app and go to app configuration. Get the app config as `google-services.json` in JSON format. 4. Create an authentication for this integration to communicate with Firebase Cloud Messaging. 5. In a Real-time Journey, select this authentication for a new triggered activation. ## Requirements and Limitations - This connector limitation follow the FCM limitations. Please refer to [FCM Quotas and Limits](https://firebase.google.com/docs/cloud-messaging/throttling-and-quotas). ## Static IP Address of Treasure Data Integration If your security policy requires IP whitelisting, you must add Treasure Data's IP addresses to your allowlist to ensure a successful connection. Please find the complete list of static IP addresses, organized by region, at the following link: [https://api-docs.treasuredata.com/en/overview/ip-addresses-integrations-result-workers/](https://api-docs.treasuredata.com/en/overview/ip-addresses-integrations-result-workers/) ## Use the TD Console to Create Your Connection 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. 1. Open the **TD Console**. 2. Navigate to **Integrations Hub > Catalog**. 3. Select the search icon on the far right of the Catalog screen, and type **Firebase Cloud Messaging Output Streaming**. 4. Hover over the Firebase Cloud Messaging Output Streaming connector and select **Create Authentication**. ![Firebase Cloud Messaging connector tile in the Integrations Hub Catalog](/assets/fcm-streaming-logo.775e2c07547af866fae4df4d7920423fe358cfe1746dd9d365bdfa5ed4e1c559.171e1ecf.png) ![Create Authentication button displayed when hovering over the Firebase Cloud Messaging connector](/assets/fcm-streaming-authen.e6379fd330eb1be6a624ce4203915373e48ea63c44bd1ecd62f9661979f968a6.171e1ecf.png) 1. Enter the required credentials. ![Authentication configuration screen showing the Private Key In JSON File field](/assets/fcm-streaming-authen-detail.17bc9d9feab76aa4965a37b5f305a6f8bd9c064d3fd3170a8b8ff91611d96e6d.171e1ecf.png) 1. Select **Continue**. 2. Enter a name for your connection. 3. Select **Done.** **New Authentication Fields** | Parameter | Description | | --- | --- | | Private Key In JSON File | The JSON credential of the App in Project | After configuring the Firebase Cloud Messaging Streaming integration, it is now available to be incorporated into real-time customer journey activations. See [Creating a Real-time Triggered Activation](https://docs.treasuredata.com/smart/project-product-documentation/creating-a-real-time-triggered-activation) for additional information. ## Retry and Logging Logic - The connector will retry to send the request when it gets the status code 429, 500, 502, 503, or 504. - If the request is sent successfully before the **Maximum Number of Retry** is reached, the logging will show successfully. - If the request still fails after reaching the **Maximum Number of Retry**, the connector will stop the job. - We will see the error message and the status code in the client's activation table whenever the request sent fails. - The **Maximum Number of Retry** can be configured in the Activation Config.