我正在尝试从cloud_firestore
获取数据。
void _getData(){
final getData = await FirebaseFirestore.instance
.collection('users')
.doc(id)
.get();
Map<String, dynamic> d = getData.data()!;
for (dynamic i in d["tags"]) {
.......
}
}
但是当调用_getData()
时,for (dynamic i in d["tags"])
发生错误。
_TypeError (type '_InternalLinkedHashMap<String, dynamic>' is not a subtype of type 'Iterable<dynamic>')
我找到了这个答案并更改了我的代码。
Map<String, dynamic> d = getData.data()!;
Map<String, dynamic> d = Map<String, dynamic>.from(getData.data()!);
但是这个错误永远不会被修复。
我不想在没用的_InternalLinkedHashMap
上浪费时间。
print("type: " + d["tags"].runtimeType.toString());
输出I/flutter (18762): type: _InternalLinkedHashMap<String, dynamic>
标题>我找到了错误来源。当特定的文档被破坏时,会发生此错误。
对于我来说,我认为数据库是这样的:
tags (array)
|- tag1 (map)
|- user (String)
|- date (Timestamp)
|- tag2 (map)
|- user (String)
|- date (Timestamp)
...
然而,数据库实际上是这样的:
tags (array)
|- user (String)
|- date (Timestamp)