我试图在Firebase数据库中的列表视图中实时显示数据,但是我遇到了forEach问题,这到底是由于什么原因造成的?我试了很长时间不同的解决方案,但都不能解决,有人知道解决这个问题的方法应该是什么吗?

我附上代码

class UserTask {
Future<List<Task>> getTask() async {
List<Task> groupTask = [];

try {
  DatabaseReference ref = FirebaseDatabase.instance
      .ref()
      .child("grupos")
      .child("grupoid3")
      .child("tareas");

  DatabaseEvent event = await ref.once();

  if (event.snapshot.exists) {
    event.snapshot.value.forEach((key, value) {
      Map mapa = {"key": key, ...value};
      Task nuevaTask = Task(
        titulo: mapa["titulo"],
        contenido: mapa["contenido"],
        key: mapa["key"],
      );
      groupTask.add(nuevaTask);
    });
  }
  return groupTask;
} catch (e) {
  return groupTask;
}

} }

Image error

推荐答案

您需要强制转换该值,以便代码知道预期的内容以及对象可以或不能执行的内容.

试试这个:

final tasks = event.snapshot.value as Map<dynamic, dynamic>;

tasks.forEach((key, value) {
  Map mapa = {"key": key, ...value};
  Task nuevaTask = Task(
    titulo: mapa["titulo"],
    contenido: mapa["contenido"],
    key: mapa["key"],
  );
  groupTask.add(nuevaTask);
});

Flutter相关问答推荐

我如何才能收到每天重复的预定通知?

如何为Android 12及以上设备以及Android 11及以下设备动态处理Splash Screen?如果可能的话没有包裹

video_player在Android上返回401 Unauthorized with Bunny CDN

我的flutter代码显示一个小部件被认为是死代码,为什么?

Flutter 翼doctor 显示的错误,我似乎不能修复.问题:系统32、Android工具链、Windows 10 SDK

如何在表格日历标题下方添加文本?

点击表情符号按钮后,Flutter 文本域文本编辑控制器将文本恢复为原始值

有没有可能不在BlocBuilder中重新构建内容?

我怎样才能go 掉这个底部导航栏上的白色背景

Flutter :执行com.android.build.gradle.internal.tasks.MergeNativeLibsTask$MergeNativeLibsTaskWorkAction时出现故障

Flutter 附近的连接

如何使自动焦点位于已经有一些文本的 TextField 的第一行?

你如何在 Flutter 中组合两个数组?

如何显示从 MariaDB 获取的数据到列表视图

flutter 创建一个带有 2 个图标的按钮

如何防止卡子在底部溢出?

Flutter Web Responsiveness 效率不高

有没有办法帮助我修复类型 null 不是 Map 类型的子类型?

检索 api 的值时,我得到_TypeError(类型'Null'不是'String'类型的子类型)

"!" 是什么意思该运算符在使用如下方式时意味着dart ?