_InternalLinkedHashMap<dynamic, dynamic> Dart 中的 firestore 错误
_InternalLinkedHashMap<dynamic, dynamic> firestore error in Dart
我已将 Cloud Firestore 设置为我的数据库,正在检索包含地图的文档,这是快照:
当我尝试使用 get()
检索文档时,我得到一个 DocumentSnapshot
,然后我将其转换为 Map<String, dynamic>
,它包含许多嵌套映射,例如上图。所以我用 .forEach
遍历它们,并且我成功地接收到值(用断点检查)。
现在因为我想在我的 UI 中显示它们,所以我将所有 嵌套地图 存储在 List()
中,但是当我尝试添加它们时,我得到这个错误:
日志:
type '_InternalLinkedHashMap<dynamic, dynamic>' is not a subtype of type 'Map<String, dynamic>' in type cast
代码:
List<Map<String, dynamic>> dummyListMap = new List();
await docRef.get().then((value) {
value.data.forEach((key, mapValue) {
dummyListMap.add(mapValue as Map<String, dynamic>);
});
});
Whosebug 上有几个问题有同样的错误,但它们是关于 JSON 数据结构的,我无法解码它们以用于我的案例。
谢谢!
您必须将 _InternalLinkedHashMap<dynamic, dynamic>
转换为 Map<String, dynamic>
。通过使用 forEach
,您将拆分 DocumentSnapshot
的键和值。到目前为止一切都很好。现在该值的类型为 _InternalLinkedHashMap<dynamic, dynamic>
。您必须将其转换为 Map<String, dynamic>
.
将您的代码替换为:
dummyListMap.add(Map<String,dynamic>.from(mapValue));
我已将 Cloud Firestore 设置为我的数据库,正在检索包含地图的文档,这是快照:
当我尝试使用 get()
检索文档时,我得到一个 DocumentSnapshot
,然后我将其转换为 Map<String, dynamic>
,它包含许多嵌套映射,例如上图。所以我用 .forEach
遍历它们,并且我成功地接收到值(用断点检查)。
现在因为我想在我的 UI 中显示它们,所以我将所有 嵌套地图 存储在 List()
中,但是当我尝试添加它们时,我得到这个错误:
日志:
type '_InternalLinkedHashMap<dynamic, dynamic>' is not a subtype of type 'Map<String, dynamic>' in type cast
代码:
List<Map<String, dynamic>> dummyListMap = new List();
await docRef.get().then((value) {
value.data.forEach((key, mapValue) {
dummyListMap.add(mapValue as Map<String, dynamic>);
});
});
Whosebug 上有几个问题有同样的错误,但它们是关于 JSON 数据结构的,我无法解码它们以用于我的案例。
谢谢!
您必须将 _InternalLinkedHashMap<dynamic, dynamic>
转换为 Map<String, dynamic>
。通过使用 forEach
,您将拆分 DocumentSnapshot
的键和值。到目前为止一切都很好。现在该值的类型为 _InternalLinkedHashMap<dynamic, dynamic>
。您必须将其转换为 Map<String, dynamic>
.
将您的代码替换为:
dummyListMap.add(Map<String,dynamic>.from(mapValue));