onMessage data:'RemoteMessage'实例(想要在控制台上打印消息)

问题描述 投票:0回答:2

这是我尝试从

firebase messaging
发送消息时出现的错误,如果有人能向我解释如何使其正确,我会非常高兴

W/FirebaseMessaging(11937): Unable to log event: analytics library is missing
W/FirebaseMessaging(11937): Unable to log event: analytics library is missing
D/FLTFireMsgReceiver(11937): broadcast received for message
I/flutter (11937): onMessage data: Instance of 'RemoteMessage'

这是我的

pushnotification.dart:
文件


import 'package:cab_driver/globalvariables.dart';
import 'package:firebase_core/firebase_core.dart';
import 'package:firebase_database/firebase_database.dart';
import 'package:firebase_messaging/firebase_messaging.dart';

class PushNotificationService {

  final FirebaseMessaging fcm = FirebaseMessaging.instance;

  Future initialize() async {
    FirebaseMessaging.instance.getInitialMessage().then((RemoteMessage message) {
      print('getInitialMessage data: $message');

    });

    FirebaseMessaging.onMessage.listen((RemoteMessage message) async {
      print("onMessage data: $message");
    });

    FirebaseMessaging.onMessageOpenedApp.listen((RemoteMessage message) {
      print('onMessageOpenedApp data: $message');

    });
  }

  Future<String>getToken() async{

    String token = await fcm.getToken();
    print('token: $token');

    DatabaseReference tokenRef = FirebaseDatabase.instance.reference().child('drivers/${currentFirebaseUser.uid}/token');
    tokenRef.set(token);

    fcm.subscribeToTopic('alldrivers');
    fcm.subscribeToTopic('allusers');
  }
}

我想打印我从 firebase 消息发送的消息,但给出了与

I/flutter (11937): onMessage data: Instance of 'RemoteMessage'
相同的内容,请任何人都可以帮助我,我真的什么都不懂

android firebase flutter dart firebase-cloud-messaging
2个回答
0
投票

RemoteMessage
不会覆盖
toString()
,所以这就是您看到
Instance of 'RemoteMessage
的原因。

您可以简单地从 RemoteMessage 对象中打印您想要的任何内容。例如,如果您对

data
属性感兴趣:

FirebaseMessaging.onMessage.listen((RemoteMessage message) async {
  print("onMessage data: ${message.data}");
});

您可以对 RemoteMessage 中的 其他属性执行类似的操作。


0
投票

因为

RemoteMessage
不会覆盖
toString()
。更好的选择是打印
message.toMap()

FirebaseMessaging.onMessage.listen((RemoteMessage message) async {
    print("Message: ${message.toMap()}");
});
© www.soinside.com 2019 - 2024. All rights reserved.