简体   繁体   English

Flutter 实时数据库 9.0.6 列表<object?> ' 不是 'Map 类型的子类型<dynamic, dynamic> '</dynamic,></object?>

[英]Flutter realtime database 9.0.6 List<Object?>' is not a subtype of type 'Map<dynamic, dynamic>'

After update Firebase Realtime Database to 9.0.XI cant converet snapshot.value to Map<dynamic, dynamic> or Map<String, dynamic>将 Firebase 实时数据库更新到 9.0.XI 后,我无法将 snapshot.value 转换为 Map<dynamic, dynamic> 或 Map<String, dynamic>

final FirebaseDatabase database = FirebaseDatabase.instance; 
database.setPersistenceEnabled(true);

itemRef = database.reference().child('_child1').child(_remoteConfigService.getStringLang);

itemRef.once().then((event) {
    final _data1 = Map<String, dynamic>.from(event.snapshot.value as dynamic).forEach((key, value) => 
_notes.add(Item.fromRTDB(value)));
});

My Model Class:我的 Model Class:

class Item {
  String key;
  String code;
  String spn;

  Item({
    required this.key,
    required this.code,
    required this.spn});

  factory Item.fromRTDB(Map<String, dynamic> data) {
    return Item(
         key: data['key'] ?? '01',
        code: data['code'] ?? 'A drink',
        spn: data['spn'] ?? 'Beer');
  }

  toJson() {
    return {
      "key": key,
      "code": code,
      "spn": spn,
    };
  }
}

In all options I get error:在所有选项中我都收到错误:

List<Object?>' is not a subtype of type 'Map<dynamic, dynamic>'

Seems like the key s in the child are all numbers so it's already a List似乎孩子中的key都是数字所以它已经是一个List

Try this:尝试这个:

 final _data1 = List.from(event.snapshot.value as dynamic).forEach((key, value) => 
_notes.add(Item.fromRTDB(value)));
  Future<Null> getStudies() async {
_data.clear();
DatabaseReference ref = FirebaseDatabase.instance.ref("etudes");
Query query = ref.orderByChild("type").equalTo(1);
// Get the Stream
Stream<DatabaseEvent> stream = query.onValue;
// Subscribe to the stream!
stream.listen((DatabaseEvent event) {
  print('Event Type: ${event.type}'); // DatabaseEventType.value;
  print('Snapshot: ${event.snapshot}'); // DataSnapshot
  if(event.snapshot.exists) {
    Map<String, dynamic> data = jsonDecode(jsonEncode(event.snapshot.value)) as Map<String, dynamic>;
    data.forEach((key, value)  async {
      _data.add(Etude.fromJson(value));
    });
    notifyListeners();
  } else {
    //print("snapshot does not exists");
    _loading  = false;
    notifyListeners();
  }
});
notifyListeners();
return null;

} }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 扑动:输入'_InternalLinkedHashMap<object?, object?> ' 不是 'Map 类型的子类型<string, dynamic> '</string,></object?,> - flutter: type '_InternalLinkedHashMap<Object?, Object?>' is not a subtype of type 'Map<String, dynamic>' 输入'列表<map<string, dynamic> &gt;' 不是 'Map 类型的子类型<dynamic, dynamic> ' </dynamic,></map<string,> - type 'List<Map<String, dynamic>>' is not a subtype of type 'Map<dynamic, dynamic>' Flutter StreamBuilder小部件错误:类型'()=&gt; Map<string, dynamic> ' 不是类型 'DocumentSnapshot 的子类型<object?> ' 在类型转换中</object?></string,> - Flutter StreamBuilder widget Error : type ' () => Map<String, dynamic >' is not a subtype of type 'DocumentSnapshot<Object?>' in type cast Flutter/Firestore 返回类型列表<review>不是类型“Map”的子类型<string, dynamic> ' 从 Stream 检索快照时</string,></review> - Flutter/Firestore returns type List<Review> is not a subtype of type 'Map<String, dynamic>' when retrieving snapshots from Stream Flutter/Firestore - 输入“列表”<dynamic> ' 不是类型 'Widget' 的子类型</dynamic> - Flutter/Firestore - type 'List<dynamic>' is not a subtype of type 'Widget' Flutter 返回错误类型 'List<dynamic> ' 不是类型 'String' 的子类型</dynamic> - Flutter returning error type 'List<dynamic>' is not a subtype of type 'String' 如何修复以下错误:键入“列表<dynamic> ' 不是 'Map 类型的子类型<dynamic, dynamic> '?</dynamic,></dynamic> - How can I fix the following error: type 'List<dynamic>' is not a subtype of type 'Map<dynamic, dynamic>'? 例外:“字符串”类型不是“地图”类型的子类型<dynamic, dynamic> ' 在 flutter 的类型中</dynamic,> - Exception: type 'String' is not a subtype of type 'Map<dynamic, dynamic>' in type cast in flutter 输入“列表<dynamic> ' 不是类型 'List 的子类型<widget> '</widget></dynamic> - type 'List<dynamic>' is not a subtype of type 'List<Widget>' 错误:键入 '() => Map<string, dynamic> ?' 不是类型“Map”的子类型<string, dynamic> ?'</string,></string,> - Error: type '() => Map<String, dynamic>?' is not a subtype of type 'Map<String, dynamic>?'
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM