繁体   English   中英

Flutter:参数类型“对象?” 不能分配给参数类型 'Map<string, dynamic> '</string,>

[英]Flutter : The argument type 'Object?' can't be assigned to the parameter type 'Map<String, dynamic>'

我刚刚尝试从 firebase 获取消息,但它说 DocumentSnapShot 返回 Object,我的 ModelMessage.fromJson 希望它是 Map<String, dynamic>..

FirebaseFirestore firestore = FirebaseFirestore.instance;

  Stream<List<MessageModel>> getMessagesByUserId(int userId) {
    try {
      return firestore
          .collection('messages')
          .where('userId', isEqualTo: userId)
          .snapshots()
          .map((QuerySnapshot list) {
        var result = list.docs.map<MessageModel>((DocumentSnapshot message) {
          

          return MessageModel.fromJson(message.data()); <--- the error is here (message.data())

        }).toList();

       
        result.sort(
          (MessageModel a, MessageModel b) =>
              a.createdAt.compareTo(b.createdAt),
        );

        return result;
      });
    } catch (e) {
      throw Exception(e);
    }
  }

有什么方法可以将 object 转换为动态字符串,或者我的代码有问题吗?..谢谢

尝试这个

 return MessageModel.fromJson(message.data() as Map<String, dynamic>);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM