【问题标题】:I'm getting error The argument type 'RemoteMessage' can't be assigned to the parameter type 'Map<String, dynamic>'我收到错误无法将参数类型“RemoteMessage”分配给参数类型“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 我已经有了,再次感谢帮助兄弟

标签: android flutter firebase-realtime-database firebase-cloud-messaging


【解决方案1】:

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

rideRequestId=message.data['ride_request_id'];

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

【讨论】:

    猜你喜欢
    • 2021-11-13
    • 1970-01-01
    • 2021-12-27
    • 2020-12-27
    • 2021-08-29
    • 2021-10-02
    • 2020-12-15
    • 2021-03-13
    相关资源
    最近更新 更多