我收到错误无法将参数类型“RemoteMessage”分配给参数类型“Map<String, dynamic>”

Posted

技术标签:

【中文标题】我收到错误无法将参数类型“RemoteMessage”分配给参数类型“Map<String, dynamic>”【英文标题】:I'm getting error The argument type 'RemoteMessage' can't be assigned to the parameter type 'Map<String, dynamic>' 【发布时间】:2021-12-09 07:58:02 【问题描述】:

这是我的 getrequestid 代码,它给了我错误:

参数类型 RemoteMessage 不能分配给参数类型'Map'

所以我需要将远程消息转换为映射消息

final FirebaseMessaging firebaseMessaging=FirebaseMessaging.instance;
  Future initialize(context) async     
    FirebaseMessaging.onMessageOpenedApp.listen(
          (RemoteMessage message) 
            print("im clicked1");
      getRideRequestId(message);
      ,
    );
  



  Future getToken() async
    String? token=await firebaseMessaging.getToken();
    print("This Your Token");
    print(token);
    driversRef.child(currentfirebaseUser!.uid).child("token").set(token);
    firebaseMessaging.subscribeToTopic("alldrivers");
    firebaseMessaging.subscribeToTopic("allusers");

  

String getRideRequestId(Map<String,dynamic> message)
  String rideRequestId="";
  if(Platform.isandroid)
    rideRequestId=message['data']['ride_request_id'];
    print("Print request id::");
    print(rideRequestId);
  else
   rideRequestId=message['ride_request_id'];
  
  return rideRequestId;

  

【问题讨论】:

这就是你想要的getRideRequestId(message.data); 我试过了,但它再次给了我错误,尝试 requestid 为 null 你能显示print(message.data);的输出吗? E/flutter (7007): [ERROR:flutter/lib/ui/ui_dart_state.cc(209)] 未处理的异常:NoSuchMethodError:方法 '[]' 在 null 上调用。 E/flutter(7007):接收者:null E/flutter(7007):尝试调用:[](“ride_request_id”) 感谢帮助它通过打印 message.data 解决了我的问题我得到了 [data][request_id] 所以我刚刚删除了 [data] 因为 message.data 我已经有了,再次感谢帮助兄弟 【参考方案1】:

消息的数据存储在其data 属性中,因此:

rideRequestId=message.data['ride_request_id'];

对于此类问题,我强烈建议您将产品的参考文档放在手边,例如本例中的RemoteMessage

【讨论】:

以上是关于我收到错误无法将参数类型“RemoteMessage”分配给参数类型“Map<String, dynamic>”的主要内容,如果未能解决你的问题,请参考以下文章

错误:无法将类型“(_)->()”的值转换为预期的参数类型“(()-> Void)?”

Swift:无法将“NSDate”类型的值转换为预期的参数类型“NSDateComponents”

我收到未捕获的类型错误:无法将属性“onclick”设置为 null? [复制]

无法使用参数列表调用类型“附加”

无法将“NSMutableArray”类型的值转换为预期的参数类型“[SKTexture]”

无法将“[String : String?]”类型的值转换为预期的参数类型“String”