Tom*_*652 7 dart firebase firebase-realtime-database flutter
我有下面的代码:
Map<dynamic, dynamic> result = snapshot.value;
Map<String, dynamic> data = Map<String, dynamic>();
for (dynamic type in result.keys) {
data[type.toString()] = result[type];
}
print(data);
print(data.runtimeType);
Run Code Online (Sandbox Code Playgroud)
但数据类型是_InternalLinkedHashMap<String, dynamic>,我无法读取它的值,尽管我在上面做了丑陋的黑客攻击。
直接转换也不起作用:snapshot.value as Map<String, dynamic>抛出错误:'_InternalLinkedHashMap<Object?, Object?>' is not a subtype of type 'Map<String, dynamic>'
我需要有一个 Map<String,dynamic> 类型才能创建我的自定义类对象。
snapshot.value有一种动态类型,但它是一个返回实时数据库查询结果的 json 对象,并且没有关于如何将值检索到 Flutter 对象中的文档。
我已经尝试过这个答案,但我无法使用它,因为它jsonDecode()需要一个字符串作为参数。
Fra*_*len 11
当我尝试汤姆的回答时,我得到:
参数类型“对象?” 无法分配给参数类型“Map<dynamic,dynamic>”
为了解决这个问题,我必须这样做:
Map<String, dynamic>.from(snapshot.value as Map);
Run Code Online (Sandbox Code Playgroud)
事实上,由于我的数据库节点中的所有值都是布尔值,所以我能够这样做:
Map<String, bool>.from(snapshot.value as Map);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
31125 次 |
| 最近记录: |