# Overview (/en/realtime-media/im/build/notifications-and-event-handling/offline-push/overview/react-native)

> For AI agents: see the complete documentation index at [llms.txt](/llms.txt).

<a id="custom-displays" />

    Chat supports integration of Google Firebase Cloud Messaging (FCM), which enables developers to use an offline push notification service. The service features low latency, high delivery, high concurrency, and no violation of the users' personal data.

    To use FCM offline push, configure the FCM push certificate information, such as **Private Key** and **Certificate Name** in [Agora Console](https://console.agora.io/v2). Then call `updatePushConfig` provided by the client SDK to upload the device token to the Agora server.

    To test the offline push feature, download our [demo](https://github.com/AgoraIO/Agora-Chat-API-Examples/tree/main/Chat-RN/firebase_push_demo).

    ## Understand the tech [#understand-the-tech-4]

    The following figure shows the basic workflow of offline push:

    ![1655713515869](https://web-cdn.agora.io/docs-files/1655713515869)

    1. User B initializes the FCM push SDK and checks whether FCM push is configured.
    2. User B obtains the device token from the FCM push server according to the configured FCM push SDK.
    3. The FCM push server returns the device token to user B.
    4. User B uploads the push certificate name and device token to the Agora Chat server.
    5. User A sends a message to User B.
    6. The Agora Chat server checks whether user B is online. If so, the server directly sends the message to user B.
    7. If user B is offline, the Agora server determines whether the user has configured FCM push.
    8. The Agora server sends the message to the FCM push server.
    9. The FCM push server sends the message to user B.

    <CalloutContainer type="warning">
      <CalloutDescription>
        The device token is the push token provided by FCM push. That is, the registration token generated by the FCM SDK for the client app instance when your application is first launched. This token is used to identify every app on every device. FCM uses this token to clarify which device the message is sent to, and then forwards the message to the device. The device then notifies the app. You can call the `FirebaseMessaging.getInstance().getToken()` method to obtain the token. In addition, if you do not unbind the device token when logging out (pass `false` to the `unbindToken` parameter when calling `logout`), the user will still receive offline push notifications during the validity period of the push certificate and the token.
      </CalloutDescription>
    </CalloutContainer>

    
  
