![](/img/trans.png)
[英]Flutter Cloud Firestore: error: The argument type 'Object? Function()' can't be assigned to the parameter type 'Map<String, dynamic>'
[英]The argument type 'Object?' can't be assigned to the parameter type 'Map<dynamic, dynamic>'
我在以下行“var map = Map <String, dynamic>.from (snap.snapshot.value);”中的“snap.snapshot.value”参数有错误。 错误是“参数类型‘对象?’ 不能分配给参数类型 'Map <dynamic, dynamic>'。”
class _HomePageState extends State<HomePage> {
List<Posts> postsList = [];
@override
void initState() {
super.initState();
DatabaseReference postsRef = FirebaseDatabase.instance.reference().child("Posts");
postsRef.once().then((snap) {
var map = Map<String, dynamic>.from(snap.snapshot.value); <--- the error is here
postsList.clear();
map.forEach((key, value) {
var values = Map<String,dynamic>.from(map);
Posts posts = Posts
(
values['url'],
values['descrizione'],
values['data'],
values['ora']
);
postsList.add(posts);
});
您会更改如下代码吗?
从
var map = Map<String, dynamic>.from(snap.snapshot.value);
至
Map<String, dynamic> map = snap.snapshot.value as Map<String, dynamic>
这是因为Map.from function 接受Map<dynamic, dynamic>但您传递的是object
。 所以要像下面一样使用铸造:
var map = Map<String, dynamic>.from(snap.snapshot.value as Map<dynamic, dynamic>);
在您的帖子 model 中,您需要删除任何明确的 object 转换。 例如从
`Posts.fromMap(Map<String, dynamic> map) {
comments: List<String>.from((map['comments'] as List<String>))
}`
到
`Posts.fromMap(Map<String, dynamic> map) {
comments: List<String>.from((map['comments'] as List))
}`
所以它被当作一个列表,没有更远的
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.