错误:类型“Future<dynamic>”不是“List<dynamic>”类型的子类型。扑
Posted
技术标签:
【中文标题】错误:类型“Future<dynamic>”不是“List<dynamic>”类型的子类型。扑【英文标题】:error : type 'Future<dynamic>' is not a subtype of type 'List<dynamic>'. Flutter 【发布时间】:2022-01-23 07:05:25 【问题描述】:我使用 firestore 来检索我的数据库作为地图列表,但是当我尝试使用它时说
类型“未来”不是类型“列表”的子类型
它说这是一个未来,我想把它转换成 List
谢谢
CollectionReference _collectionRef =
FirebaseFirestore.instance.collection('code');
getData() async
// Get docs from collection reference
QuerySnapshot querySnapshot = _collectionRef.get();
// Get data from docs and convert map to List
final allData = querySnapshot.docs.map((doc) async => doc.data()).toList();
print(allData);
return allData;
更新:
这是没有等待/同步的代码:
'
CollectionReference _collectionRef =
FirebaseFirestore.instance.collection('code');
getData()
// Get docs from collection reference
QuerySnapshot querySnapshot = _collectionRef.get();
// Get data from docs and convert map to List
final allData = querySnapshot.docs.map((doc) => doc.data()).toList();
print(allData);
return allData;
'
同样的信息出现:
`type 'Future<dynamic>' is not a subtype of type 'List<dynamic>`
【问题讨论】:
你不能在 map 中使用异步函数——在这种情况下,它甚至是必要的,因为你只是想调用doc.data()
我只是想把这个函数的返回转换成一个我可以使用的变量
正如@RichardHeap 所说,只需删除不必要的async
关键字querySnapshot.docs.map((doc) => doc.data()).toList();
就足够了
还是不行。它说是一种 future你可以试试这个:
将getData()
更改为Future<List> getData()
【讨论】:
以上是关于错误:类型“Future<dynamic>”不是“List<dynamic>”类型的子类型。扑的主要内容,如果未能解决你的问题,请参考以下文章
Flutter fromJson - 未处理的错误未处理的错误类型'String'不是'int'类型的子类型发生在实例中
我在尝试登录或注册时收到错误消息“错误类型‘AuthResult’不是类型转换中‘FirebaseUser’类型的子类型”