Flutter中如何处理Firebase实时数据库的IdentityMap对象
解决Firebase实时数据库IdentityMap对象的操作问题
你不需要把snapshot.value转成字符串,直接将其强转为Map<String, dynamic>即可操作内部数据——因为IdentityMap<String, dynamic>本身就是Dart Map的子类,和普通Map用法完全一致。
修改后的监听代码
currentRef.onValue.listen((event) { setState(() { // 直接强转为Map类型,避免转成字符串 currentReading = event.snapshot.value as Map<String, dynamic>; }); });
如何操作内部数据
强转后就可以用Map的所有方法来处理数据:
- 遍历所有键值对:
currentReading.forEach((date, value) { print('日期:$date,对应数值:$value'); // 这里可执行自定义逻辑,比如数据统计、UI更新等 });
- 获取特定日期的数值:
var specificValue = currentReading['2022 11 21']; if (specificValue != null) { // 对获取到的数值进行操作 print('2022-11-21的数值是:$specificValue'); }
内容的提问来源于stack exchange,提问作者Div_OR
相关产品推荐
相关产品推荐

