【发布时间】:2021-09-21 17:17:04
【问题描述】:
使用 firebase_database:^7.1.1
在 null 安全之前,我曾经这样做是为了从 firebase 数据库中获取数据:
DataSnapshot dataSnapshot = await References.getReferenceYears().once();
Map<dynamic, dynamic> values = dataSnapshot.value;
values.forEach((key, value) {...}
现在当我尝试这样做时,我得到如下错误:
DataSnapshot? dataSnapshot = await References.getReferenceYears().once();
Map<dynamic, dynamic> values = dataSnapshot.value;
[ERROR:flutter/lib/ui/ui_dart_state.cc(199)] 未处理的异常:类型 'List
我认为这意味着 key 没有在 dataSnapshot.value 中返回,我现在如何像以前一样使用它来获取 (key, value)?
如果我打印我得到的 snapshot.value,所以看起来键不再像以前一样出现在 snapshot.value 中,我现在不知道键在哪里:
[{name: 2016-2017}, {name: 2017-2018}, {name: 2018-2019}]
提前致谢。
【问题讨论】:
-
听起来您在
References.getReferenceYears()下有连续的数字键,SDK 会将其转换为数组。我认为这在最近的 SDK 中没有改变,因为 Firebase 总是试图将这些键强制转换为数组。如果您确定它已更改,您可以编辑您的问题以在References.getReferenceYears()显示 JSON(作为文本,请不要截图)?您可以通过单击 Firebase Database console 的溢出菜单 (⠇) 中的“导出 JSON”链接来获取此信息。 -
啊,是的,你是对的。非常感谢。
标签: flutter dart firebase-realtime-database dart-null-safety