Я пытаюсь получить пользовательские данные, но при этом получаю ошибку ниже:
Exception: type '_InternalLinkedHashMap<dynamic, dynamic>' is not a subtype of type 'Map<String, dynamic>
Я посмотрел на различные решения для аналогичной проблемы и соответственно изменил свой код (например: использовал <String, dynamic>
вместо <dynamic, dynamic>
, но все еще вижу эту ошибку.
Фрагмент модели:
// Returns a Pro created from JSON
factory Pro.fromJson(Map<String, dynamic> json) {
Pro pro = Pro();
pro.uid = json['uid'];
pro.email = json['email'];
И извлекаем эти данные, как показано ниже, и вызываем этот метод в initState()
:
Future<Pro> _getPro() async {
await userDatabaseReference.once().then((DataSnapshot snapshot) {
Map<String, dynamic> values = snapshot.value;
values["uid"] = snapshot.key;
print(snapshot.key);
Pro fetchedUser = Pro.fromJson(values);
setState(() {
this.pro = fetchedUser;
});
});
}
Если я использую Map<String, dynamic> values
, тогда я получаю ошибку в той же строке, а если я использую Map<dynamic, dynamic> values
, то я получаю ошибку в: Pro fetchedUser = Pro.fromJson(values)
Так как Pro.fromJson(values)
имеет тип параметра Map<String, dynamic>
это тот же тип параметра, который я использовал для объявления values
, но все еще не уверен, почему он выдает ошибку.