![](/img/trans.png)
[英]Error: The argument type 'Map<String, dynamic>?' can't be assigned to the parameter type 'Map<dynamic, dynamic>'
[英]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.