Stay organized with collections
    
    
      
      Save and categorize content based on your preferences.
    
  
  
    
  
  
  
  
    
  
  
    
    
    
    
  
    
        
Firebase Cloud Messaging
    
    
    
    plat_ios
    plat_android
    plat_web
    plat_flutter
    plat_cpp
    plat_unity
    
    
    
    
    
    
   
  
    Firebase Cloud Messaging (FCM) is a cross-platform messaging solution that lets you reliably send
messages.
    
      
        
      
    
    
Using 
FCM, you can notify a client app that new email or other data
is available to sync. You can send notification messages to drive user re-engagement and
retention. For use cases such as instant messaging, a message can transfer a
payload of up to 4096 bytes to a client app.
Ready to get started? Choose your platform:
iOS+ 
Android 
Web 
Flutter 
Unity 
C++ 
   
  
Key capabilities
  
    | Send notification messages or data messages | Send notification messages that are displayed to your user.
      Or send data messages and determine completely what happens in
      your application code. See 
      Message types. | 
  
    | Versatile message targeting | Distribute messages to your client app in any of 3 ways—to
    single devices, to groups of devices, or to devices subscribed to topics. | 
How does it work?
An FCM implementation includes two main components for
  sending and receiving:
- A trusted environment such as Cloud Functions for Firebase or an app server
on which to build, target, and send messages.
- An Apple, Android, or web (JavaScript) client app that receives
  messages via the corresponding platform-specific transport service.
You can send messages via
  the Firebase Admin SDK or the
  FCM server protocol.
  You can use 
  the Notifications composer for testing and to send marketing or engagement
  messages using powerful built-in targeting and analytics or custom
  imported segments.
See the architectural
  overview for more detail and important
  information about the components of FCM.
 
Implementation path
  
    |  | Set up the FCM SDK | Set up Firebase and FCM on your app according to the
      setup instructions for your platform. | 
  
    |  | Develop your client app | Add message handling, topic subscription logic, or other optional
      features to your client app. During the development, you can easily
      send test messages from
      
the Notifications composer. | 
  
    |  | Develop your app server | Decide whether you want to use the
  Firebase Admin SDK or the server protocol to create your sending
    logic—logic to authenticate, build send requests, handle responses, and
    so on. Then build out the logic in your trusted environment. | 
Next steps
  
  
  
    
  
  
    
    
      
       
    
    
  
  
  Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
  Last updated 2025-10-30 UTC.
  
  
  
    
      [null,null,["Last updated 2025-10-30 UTC."],[],[]]