[英]I'm getting an [] isn't defined for Object error in dart when following a Flutter Firebase tutorial?
[英]I'm getting an [] isn't defined for Object error in dart when I'm trying to follow this Flutter Firebase tutorial?
List<Sport?> _sportListFromSnapshot(QuerySnapshot snapshot){
return snapshot.docs.map((doc){
return Sport(
name: doc.data['name'] ?? '',
sport: doc.data['sport'] ?? '',
age: doc.data['age'] ?? 0
);
}).toList();
}
我在 ['name']、['sport'] 和 ['age'] 下收到此错误,但我不知道如何修复它,因为对于教程中的那个人,它没有给他这个错误?
这是我的体育课:
class Sport {
final String name;
final String sport;
final int age;
Sport({required this.name, required this.sport, required this.age});
}
根据文档QuerySnapshot
实际上是QuerySnapshot<T extends Object?>
因此所有分析器都知道每个文档的每个data
属性至少是一个Object
。 您需要通过定义泛型来提供更多信息,例如:
List<Sport?> _sportListFromSnapshot(QuerySnapshot<Map<String, dynamic>> snapshot){ ...
或者将它投射到回调的主体中,例如:
List<Sport?> _sportListFromSnapshot(QuerySnapshot snapshot){
return snapshot.docs.map((doc){
final data = doc.data as Map<String, dynamic>;
return Sport(
name: data['name'] ?? '',
sport: data['sport'] ?? '',
age: data['age'] ?? 0
);
}).toList();
}
该教程可能放宽了分析器规则,在我看来,这对观众不利。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.