【问题标题】:Firebase Messaging packages is not working after Package Update?包更新后 Firebase 消息包不起作用?
【发布时间】:2021-06-29 08:44:10
【问题描述】:
    _firebaseMessaging.*configure*( onMessage: (Map<String, dynamic> message) async {
    print("\n\n on1Message: ${message.toString()}");
    Map<String, dynamic> object = json.decode(
        message['data']['notification'].toString());

    print(
        '\n\n Object==${message['data']}\n\n object===$object');
    object['work'] = 'updateCount';
    Stream<Map<String, dynamic>> stream =
        Stream.value(object);

    streamController.addStream(stream);

    print("\n\n object ---> ${object}");

控制台日志中的错误------------------------------- --------------------- 722:24:错误:没有为“FirebaseMessaging”类定义方法“configure”。

  • 'FirebaseMessaging' 来自'package:firebase_messaging/firebase_messaging.dart' ('/E:/flutterSDK/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_messaging-9.1.0/lib/firebase_messaging.镖')。 尝试将名称更正为现有方法的名称,或定义名为“配置”的方法。 _firebaseMessaging.configure
    (^^^^^^^^^

configure() 方法在 Firebase 云消息包更新后不起作用。我尝试了与堆栈溢出不同的解决方案,但没有任何效果。 我应该怎么做。

【问题讨论】:

    标签: firebase flutter firebase-cloud-messaging


    【解决方案1】:

    新的 FirebaseMessaging 有点不同。 这里有两个有趣的链接: https://firebase.google.com/docs/flutter/setup?platform=android https://firebase.flutter.dev/docs/messaging/usage/

    将firebase添加到应用程序后,这就是我所做的(NotificationDetails是我编写的用于显示Notification详细信息的类。您可以编写自己的类。):

    void main() async {
      WidgetsFlutterBinding.ensureInitialized();
      await Firebase.initializeApp();
    
      runApp(
        MaterialApp(
          debugShowCheckedModeBanner: false,
          routes: {
          '/': (context) =>  AppStarter(),
          '/message': (context) => NotificationDetails(),
          },
         ),
        );
       }
    
    
    
    class AppStarter extends StatefulWidget{
       @override
       _AppStarterState createState() => _AppStarterState();
      }
    
    
    
    class _AppStarterState extends State<AppStarter>
       {
    
         FirebaseMessaging messaging = FirebaseMessaging.instance;
    
        Future<void> showMeMyToken()
        async {
          var myToken = await messaging.getToken();
          print("My Token is: " + myToken.toString());
        }
    
    
        @override
        void initState() {
           super.initState();
    
           showMeMyToken();
    
          FirebaseMessaging.instance.getInitialMessage().then((value) {
           if(value != null)
            {
              Navigator.push(context,
              MaterialPageRoute(
                  builder: (context){return NotificationDetails();},
              settings: RouteSettings(arguments: value.data,),
             ),
            );
           }
         });
    
    
         FirebaseMessaging.onMessage.listen((RemoteMessage message) {
    
    
            if (message.notification != null) {
               print('Message on Foreground: ${message.notification}');
                  }
             });
    
    
          FirebaseMessaging.onMessageOpenedApp.listen((RemoteMessage message)
           {
             Navigator.push(
               context,
               MaterialPageRoute(
                   builder: (context) {return NotificationDetails();},
                   settings: RouteSettings(arguments: message.data,)
              ),
            );
         });
    
         FirebaseMessaging.onBackgroundMessage(firebaseMessagingBackgroundHandler);
       }
    
    
       @override
        Widget build(BuildContext context) {
    
          return MaterialApp(
            debugShowCheckedModeBanner: false,
            title: 'Just a Test',
            
            home: AppHome(),
           );
          }
       }
    
    
    
    
       Future<void> firebaseMessagingBackgroundHandler(RemoteMessage message) async {
         await Firebase.initializeApp();
    
          print("Handling a background message :-): ${message.data}");
          //Here you can do what you want with the message :-)
         }
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-15
    • 1970-01-01
    • 2018-01-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多