Bird
Raised Fist0
Fluttermobile~5 mins

Push notifications (FCM) in Flutter - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is Firebase Cloud Messaging (FCM)?
FCM is a free service by Google that lets apps send notifications and messages to users across Android, iOS, and web platforms.
Click to reveal answer
beginner
Which Flutter package is commonly used to integrate FCM?
The firebase_messaging package is used to add Firebase Cloud Messaging support in Flutter apps.
Click to reveal answer
intermediate
How do you request permission for notifications on iOS in Flutter?
Use FirebaseMessaging.instance.requestPermission() to ask the user for notification permissions on iOS devices.
Click to reveal answer
beginner
What is a device token in FCM?
A device token is a unique ID that FCM uses to send notifications to a specific device.
Click to reveal answer
intermediate
How can you handle a notification when the app is in the foreground?
Use FirebaseMessaging.onMessage.listen() to listen for messages and show custom UI or alerts when the app is open.
Click to reveal answer
Which package do you add to your Flutter app to use Firebase Cloud Messaging?
Aflutter_local_notifications
Bfirebase_messaging
Chttp
Dfirebase_auth
What must you do on iOS before receiving push notifications?
ARequest user permission for notifications
BEnable background fetch
CInstall Google Play Services
DNothing, it works automatically
What does the device token represent in FCM?
AA unique identifier for the device to receive messages
BThe app version number
CThe user's email address
DThe Firebase project ID
Which method listens for messages when the app is running in the foreground?
AFirebaseMessaging.subscribeToTopic()
BFirebaseMessaging.getInitialMessage()
CFirebaseMessaging.onMessage.listen()
DFirebaseMessaging.requestPermission()
What is the first step to set up FCM in a Flutter app?
ARequest notification permission
BWrite notification UI code
CCreate a new Flutter widget
DAdd firebase_messaging package and configure Firebase project
Explain the steps to receive push notifications using FCM in a Flutter app.
Think about setup, permissions, and message handling.
You got /5 concepts.
    Describe how to handle a notification when the app is open versus when it is closed.
    Consider different app states and corresponding listeners.
    You got /4 concepts.

      Practice

      (1/5)
      1.

      What is the main purpose of using Firebase Cloud Messaging (FCM) in a Flutter app?

      easy
      A. To create user interfaces with Flutter widgets
      B. To send push notifications to users even when the app is closed
      C. To store user data locally on the device
      D. To manage app navigation between screens

      Solution

      1. Step 1: Understand FCM's role

        Firebase Cloud Messaging is designed to send messages or notifications to users' devices.
      2. Step 2: Identify the correct purpose

        Among the options, only sending push notifications matches FCM's main use.
      3. Final Answer:

        To send push notifications to users even when the app is closed -> Option B
      4. Quick Check:

        FCM purpose = send push notifications [OK]
      Hint: FCM is for messaging, not UI or storage [OK]
      Common Mistakes:
      • Confusing FCM with UI or local storage
      • Thinking FCM manages app navigation
      • Assuming FCM only works when app is open
      2.

      Which Flutter code snippet correctly requests notification permissions on iOS using FirebaseMessaging?

      FirebaseMessaging messaging = FirebaseMessaging.instance;
      // What code requests permission?
      
      easy
      A. await messaging.requestPermission();
      B. messaging.getToken();
      C. FirebaseMessaging.onMessage.listen();
      D. await messaging.subscribeToTopic('news');

      Solution

      1. Step 1: Identify permission request method

        The method to ask user permission for notifications is requestPermission().
      2. Step 2: Match code snippet

        Only await messaging.requestPermission(); correctly requests permissions on iOS.
      3. Final Answer:

        await messaging.requestPermission(); -> Option A
      4. Quick Check:

        Permission request = requestPermission() [OK]
      Hint: Permission request always uses requestPermission() method [OK]
      Common Mistakes:
      • Using getToken() to request permission
      • Listening to messages instead of requesting permission
      • Subscribing to topics does not request permission
      3.

      Given this Flutter code snippet, what will be printed when a push notification is received while the app is in the foreground?

      FirebaseMessaging.onMessage.listen((RemoteMessage message) {
        print('Message received: ' + (message.notification?.title ?? 'No Title'));
      });
      
      medium
      A. Message received: No Title
      B. Message received: null
      C. No output printed
      D. Message received: [notification title]

      Solution

      1. Step 1: Understand onMessage listener

        This listener triggers when a notification arrives while app is open.
      2. Step 2: Analyze print statement

        It prints 'Message received: ' plus the notification title if it exists, else 'No Title'.
      3. Final Answer:

        Message received: [notification title] -> Option D
      4. Quick Check:

        Foreground message prints notification title [OK]
      Hint: ?.title returns title or null, ?? provides fallback [OK]
      Common Mistakes:
      • Ignoring null safety and expecting 'null' string
      • Assuming no output if title is missing
      • Confusing onMessage with background handlers
      4.

      Identify the error in this Flutter code snippet for handling FCM token retrieval:

      FirebaseMessaging messaging = FirebaseMessaging.instance;
      String? token = messaging.getToken();
      print('Token: ' + token!);
      
      medium
      A. getToken() returns a Future, so it must be awaited
      B. token cannot be null, so ! is unnecessary
      C. FirebaseMessaging.instance is not initialized
      D. print statement syntax is incorrect

      Solution

      1. Step 1: Check getToken() return type

        getToken() returns a Future, so it must be awaited to get the actual token.
      2. Step 2: Identify missing await

        Code assigns Future to String? without await, causing error.
      3. Final Answer:

        getToken() returns a Future, so it must be awaited -> Option A
      4. Quick Check:

        Async methods need await to get values [OK]
      Hint: Async calls must use await or then() [OK]
      Common Mistakes:
      • Ignoring async nature of getToken()
      • Using ! without checking for null
      • Assuming instance is uninitialized without reason
      5.

      You want to show a local notification when a push notification arrives while the app is in the foreground. Which approach correctly combines FirebaseMessaging with Flutter Local Notifications?

      hard
      A. Use FirebaseMessaging.subscribeToTopic to trigger local notifications automatically
      B. Only use FirebaseMessaging.getToken to show notifications
      C. Listen to FirebaseMessaging.onMessage and call local notification plugin to display notification
      D. Call local notifications plugin inside FirebaseMessaging.getInitialMessage

      Solution

      1. Step 1: Understand foreground notification behavior

        FCM does not show notifications automatically when app is open; you must handle it manually.
      2. Step 2: Combine onMessage with local notifications

        Listening to onMessage lets you detect incoming messages and then trigger local notifications to show alerts.
      3. Step 3: Evaluate other options

        getToken only gets device token, subscribeToTopic manages topics, getInitialMessage handles app launch, none show notifications directly.
      4. Final Answer:

        Listen to FirebaseMessaging.onMessage and call local notification plugin to display notification -> Option C
      5. Quick Check:

        Foreground notifications need manual local notification trigger [OK]
      Hint: Use onMessage + local notifications for foreground alerts [OK]
      Common Mistakes:
      • Expecting getToken to show notifications
      • Thinking subscribeToTopic triggers UI automatically
      • Using getInitialMessage for foreground notifications
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard