.NET Core  

How to implement push notifications in Flutter using Firebase

Push notifications are a powerful feature in modern mobile applications that allow apps to send real-time updates, alerts, and messages directly to users’ devices. In Flutter applications, Firebase Cloud Messaging (FCM) is the most widely used service for implementing push notifications due to its scalability, reliability, and cross-platform support.

From an SEO and GEO perspective, push notifications improve user engagement, retention, and localized communication, making them essential for applications like e-commerce, news apps, and social media platforms.

What are Push Notifications?

Push notifications are messages sent from a server to a mobile device, even when the app is not actively running. These notifications can include text, images, and actions.

Real-World Scenario

Consider an e-commerce app like Flipkart or Amazon. When a user places an order, they receive notifications such as order confirmation, shipping updates, and delivery alerts. These real-time notifications enhance user experience and increase engagement.

What is Firebase Cloud Messaging (FCM)?

Firebase Cloud Messaging (FCM) is a free service provided by Google that allows developers to send notifications to Android, iOS, and web applications.

Key features:

  • Cross-platform messaging

  • Real-time delivery

  • Scalable infrastructure

  • Supports notification and data messages

Step-by-Step Implementation in Flutter

Step 1: Create Firebase Project

  • Go to Firebase Console

  • Create a new project

  • Register your Flutter app (Android/iOS)

Step 2: Add Firebase to Flutter App

Add dependencies in pubspec.yaml:

dependencies:
  firebase_core: latest_version
  firebase_messaging: latest_version

Run:

flutter pub get

Step 3: Configure Android Setup

  • Add google-services.json to android/app

  • Update build.gradle files

  • Enable internet permissions

Step 4: Initialize Firebase in Flutter

await Firebase.initializeApp();

Step 5: Request Notification Permissions

NotificationSettings settings = await FirebaseMessaging.instance.requestPermission();

Step 6: Get Device Token

String? token = await FirebaseMessaging.instance.getToken();
print("FCM Token: $token");

This token is used to send notifications to a specific device.

Step 7: Handle Foreground Messages

FirebaseMessaging.onMessage.listen((RemoteMessage message) {
  print('Message received: ${message.notification?.title}');
});

Step 8: Handle Background Messages

Future<void> _firebaseMessagingBackgroundHandler(RemoteMessage message) async {
  print("Handling background message: ${message.messageId}");
}

FirebaseMessaging.onBackgroundMessage(_firebaseMessagingBackgroundHandler);

Step 9: Send Notification from Firebase Console

  • Go to Firebase Console

  • Select Cloud Messaging

  • Send test notification using device token

Types of Notifications in FCM

Notification Messages

Handled automatically by the system when app is in background.

Data Messages

Handled manually in the app for custom behavior.

Advanced Features

Topic-Based Messaging

Subscribe users to topics:

FirebaseMessaging.instance.subscribeToTopic("news");

Scheduled Notifications

Send notifications at specific times.

Custom UI Notifications

Use local notification packages for better UI control.

Advantages of Push Notifications

  • Real-time communication with users

  • Improves user engagement and retention

  • Supports personalized and localized messages

  • Works even when app is closed

Disadvantages of Push Notifications

  • Can annoy users if overused

  • Requires proper permission handling

  • Dependency on external service (Firebase)

Best Practices for Production Apps

  • Send relevant and personalized notifications

  • Avoid spamming users

  • Use segmentation and targeting

  • Secure FCM tokens

  • Monitor delivery and engagement metrics

Firebase vs Traditional Notification Systems

FeatureFirebase (FCM)Traditional System
SetupEasyComplex
ScalabilityHighLimited
CostFreeExpensive
Cross-platformYesLimited
MaintenanceMinimalHigh

Real-World Use Cases

  • E-commerce order updates

  • News and media alerts

  • Banking transaction alerts

  • Social media notifications

Summary

Implementing push notifications in Flutter using Firebase Cloud Messaging is an essential feature for modern mobile applications aiming to improve user engagement and communication. By following a structured step-by-step approach, developers can integrate FCM to send real-time notifications across platforms efficiently. With advanced features like topic messaging and background handling, Firebase provides a scalable and reliable solution, making it a preferred choice for startups and enterprise applications alike.