I updated flutter3 after that I get an error "type '_Map<Object?, Object?>' is not a subtype of type 'Map<String?, dynamic>' in type cast" printed on the console in this line:
itemId = (event.snapshot.value as Chat).itemId;
this is Chat Class:
class Chat extends MyObject<Chat?> {
Chat({
this.itemId,
this.receiverId,
this.senderId,
});
String? itemId;
String? receiverId;
String? senderId;
@override
bool operator ==(dynamic other) => other is Chat && itemId == other.itemId;
@override
int get hashCode => hash2(itemId.hashCode, itemId.hashCode);
@override
String? getPrimaryKey() {
return itemId;
}
@override
List<Chat?> fromMapList(List<dynamic> dynamicDataList) {
final List<Chat?> subCategoryList = <Chat?>[];
for (dynamic dynamicData in dynamicDataList) {
if (dynamicData != null) {
subCategoryList.add(fromMap(dynamicData));
}
}
return subCategoryList;
}
@override
Chat? fromMap(dynamic dynamicData) {
if (dynamicData != null) {
return Chat(
itemId: dynamicData['itemId'],
receiverId: dynamicData['receiver_id'],
senderId: dynamicData['sender_id'],
);
} else {
return null;
}
}
and in addition:
@override
List<Map<String, dynamic>?> toMapList(List<Chat?> objectList) {
final List<Map<String, dynamic>?> mapList = <Map<String, dynamic>?>[];
for (Chat? data in objectList) {
if (data != null) {
mapList.add(toMap(data));
}
}
return mapList;
}
@override
Map<String, dynamic>? toMap(Chat? object) {
if (object != null) {
final Map<String, dynamic> data = <String, dynamic>{};
data['itemId'] = object.itemId;
data['receiver_id'] = object.receiverId;
data['sender_id'] = object.senderId;
return data;
} else {
return null;
}
}
}
the other class is:
abstract class MyObject<T> {
String? key = '0';
String? getPrimaryKey();
T fromMap(dynamic dynamicData);
Map<String, dynamic>? toMap(T object);
List<T> fromMapList(List<dynamic> dynamicDataList);
List<Map<String, dynamic>?> toMapList(List<T> objectList);
}
how Can I solve it? also I upgraded firebase and dataset to last version.