Firebase messaging doesn't have a default constructor

Viewed 14208
import 'package:flutter/material.dart';
import 'package:firebase_messaging/firebase_messaging.dart';

import 'package:google_maps_flutter/google_maps_flutter.dart';    

class PushNotificationService
{
  final FirebaseMessaging firebaseMessaging = FirebaseMessaging();

  Future initialize(context) async
   {
    firebaseMessaging.configure(
      onMessage: (Map<String, dynamic> message) async {
        retrieveRideRequestInfo(getRideRequestId(message), context);
       },
       onLaunch: (Map<String, dynamic> message) async {
         retrieveRideRequestInfo(getRideRequestId(message), context);
       },
       onResume: (Map<String, dynamic> message) async {
        retrieveRideRequestInfo(getRideRequestId(message), context);
      },
     );
    }

Manifest:

    <intent-filter>
        <action android:name="FLUTTER_NOTIFICATION_CLICK" />
        <category android:name="android.intent.category.DEFAULT" 
        />
    </intent-filter>

Error: The class 'FirebaseMessaging' doesn't have a default constructor. Try using one of the named constructors defined in 'FirebaseMessaging'.

4 Answers

Try FirebaseMessaging.instance instead of FirebaseMessaging(), it should work.

try to add add dependencies firebase_core 1.4.0

import 'package:firebase_core/firebase_core.dart';

    @override
      void initState() {
        // TODO: implement initState
        super.initState();
        Firebase.initializeApp();
      }
     
      onPressed: () async {
           String token = await FirebaseMessaging.instance.getToken();
           print(token);
                    
        },

Use FirebaseStorage.instanceFor instead of the default constructor

Use older version of FirebaseMessaging. I used firebase_messaging: ^4.0.0+1

Related