gpt4 book ai didi

flutter - 更新 Firebase RTDB 时将对象转换为 map

转载 作者:行者123 更新时间:2023-12-05 04:40:07 26 4
gpt4 key购买 nike

我正在 Firebase RTDB 中执行如下查询:

Future<UsuarioModel> cargarUsuarioEmpresa(String idEmpresa, String idUsuario) async {

UsuarioModel _usuario = UsuarioModel();
Query resp = db.child('PATH/usuarios/$idUsuario');
final snapshot = await resp.once();
_usuario = UsuarioModel.fromJson(Map<String, dynamic>.from(snapshot.value));
return _usuario;

}

在我将 firebase_database 包从 8.0.1 升级到 9.0.3 之前它一直运行良好

现在,我有一个错误

The getter 'value' isn't defined for the type 'DatabaseEvent'.

然后,我更新了接收 DatabaseEvent 的方法:

  final event = await resp.once();
_usuario = UsuarioModel.fromJson(Map<String, dynamic>.from(event.snapshot.value));

但是出现错误:

The argument type 'Object?' can't be assigned to the parameter type'Map<dynamic, dynamic>'.

我尝试添加一个 as 转换:

  _usuario = UsuarioModel.fromJson(Map<String, dynamic>.from(event.snapshot.value as Map<String,dynamic>));

但它不起作用。构建后出现错误:

Unhandled Exception: type '_InternalLinkedHashMap<Object?, Object?>'is not a subtype of type 'Map<String, dynamic>' in type cast

如何将对象映射正确转换为 Map 以修复错误?

最佳答案

由于版本 9 从 dynamic 更改为 object,您可以将快照值定义为 dynamic:

      final event = await resp.once();
_usuario = UsuarioModel.fromJson(Map<String, dynamic>.from(event.snapshot.value as dynamic));

这是一种变通方法,但确实有效!

关于flutter - 更新 Firebase RTDB 时将对象转换为 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70341014/

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