gpt4 book ai didi

firebase-realtime-database - 如何解析类型 '_InternalLinkedHashMap' 不是类型 'Map 的子类型

转载 作者:IT王子 更新时间:2023-10-29 06:53:20 27 4
gpt4 key购买 nike

我正在尝试获取用户数据,但在这样做时出现以下错误:

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 的参数类型相同但仍然不确定为什么会抛出错误。

最佳答案

请尝试如下,我们首先将值转换为 Map.from(),然后将其与 Pro 模型的 fromJson 方法一起使用:

Future<Pro> _getPro() async {
await userDatabaseReference.once().then((DataSnapshot snapshot) {
Map<String, dynamic> values = snapshot.value;
values["uid"] = snapshot.key;
print(snapshot.key);
final mapJsonCategory = Map<String, dynamic>.from(values);
Pro fetchedUser = Pro.fromJson(mapJsonCategory);
setState(() {
this.pro = fetchedUser;
});
});
}

关于firebase-realtime-database - 如何解析类型 '_InternalLinkedHashMap<dynamic, dynamic>' 不是类型 'Map<String, dynamic> 的子类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55964904/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com