无法将 _InternalLinkedHashMap 转换为任何内容

2024-03-05

尽管我首先将其作为地图上传,但从 Firebase RealtimeDatabase 获取数据作为地图时遇到了一些问题。我看到的所有解决方案都是您应该将 snapshot.value 转换为传入的数据类型,但对我来说没有任何迭代。我已经可以打电话了toString()在快照值上,我已经验证它是一个 Map,但编译器甚至不允许我将它转换为 Map,更不用说运行它了。如果我尝试使用动态来防止编译错误,我仍然会得到这个 Unhandled Exception: type '_InternalLinkedHashMap<Object?, Object?>' is not a subtype of type 'Map<String, dynamic>?' in type cast.

这就是我所做的,

  Future<Map<String, dynamic>> getBasicDetail(
      DatabaseReference databaseReference) async {
    DatabaseReference imageURLevent = databaseReference.child('basicDetail');

    final snapShot = await imageURLevent.get();
    return Map<String, dynamic>.from(
        snapShot.value as Map<String, dynamic>? ?? {});
  }

  Future<void> readProfileData({required String userId}) async {

    DatabaseReference ref = FirebaseDatabase.instance.ref("users/$userId");

    final basicDetail = await getBasicDetail(ref);
    
    // Print the data of the snapshot
    debugPrint(basicDetail.toString());
  }

我已经尝试了解析这些数据的所有可能的组合,但没有任何效果。由于某些原因,在示例和视频中,当您将右侧投射到Map<String,dynamic>你没有得到任何错误,但我的 IDE 甚至不允许我这样做。我也尝试过 Map.from() 似乎是一种流行的方法,但我的简单方法会引发运行时错误。

Why does this Firecasts from

我的同时工作

Code doesn't?

event.snapshot.value 看起来也有效

[log] {bloodGroup: gh, imageURL: /data/user/0/com.piyushlimited.buzzai/app_flutter/image_picker7287835118545461685.jpg, fullName: Henry Nana Adu, weight: 523, dateOfBirth: 11/11/11, licenseNumber: 256489, age: 28}

我可以通过引用数据的完整路径来访问数据的一个值,但我有一张大地图,我无法对每个类别中的每个值执行此操作。看起来既费钱又浪费时间。我花了几天时间尝试了很多事情,所以请记住这一点。


谢谢你们的回复。特别感谢@Stelios Papamichail 3 个月前提供的解决方案。Firebase 的响应似乎不是有效的 JSON 格式 https://stackoverflow.com/a/69423519/13894931遗憾的是官方开发团队没有注意到这一点。jsonDecode(jsonEncode(event.snapshot.value)));工作完美。这可能是性能不佳的原因,但我现在并不关心这一点,我只是很高兴它确实如此。我也不知道为什么它有效。

现在效果很好

  Future<void> readProfileData({required String userId}) async {
    DatabaseReference ref = FirebaseDatabase.instance.ref("users/$userId");

    try {
      final DataSnapshot? snapShot = await ref.get();

      Map<String, dynamic> data = jsonDecode(jsonEncode(snapShot?.value));

      userProfile = UserProfile.fromMap(data);

      setGender(userProfile.gender);

      notifyListeners();

      log(userProfile.toString());
    } on Exception catch (e) {
      log(e.toString());
    }
  }

希望更多的人看到这一点,不要像我一样浪费生命。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法将 _InternalLinkedHashMap 转换为任何内容 的相关文章

  • 我想要有条件的登录导航,没有 MAIN 片段或按钮

    我正在使用 Android Jetpack 导航组件 实时数据和 Firebase 我希望工作流程就像用户打开应用程序时一样 然后根据登录 注销状态导航到登录 配置文件片段 而不需要任何主片段或按钮 请 我的应用程序中没有主要片段 用户启动
  • (Unity 中的 Firebase 数据库)在 Android 构建期间在 Temp 中缺少classes.jar

    I am using Firebase Database in my Unity project but I am having some issues when building the project for android It ru
  • Flutter Web URL 路由不适用于真实域

    我正在尝试使用一个网址来获取参数并将该参数分配给网络文件内的变量 例如 我的域名是 example com 在这个网站中我需要用户的 ID 我想制作 example com id 123 并获取 123 id 并给出变量 123 值 在 f
  • 在 Flutter 中的组件顶部覆盖一条线

    I have the following layout in one of my components and would like to put a line on top of that like this 这是我当前的代码 并且已经在
  • Firebase 未定义?

    我正在开发一个 Angular 项目并使用 Firebase 但出现错误ReferenceError Firebase is not defined 但我不明白为什么 这是我的index html
  • Flutter showDialog、AlertDialog背景渐变。

    对于颜色 我可以使用dialogBackgroundColor给予的财产AlertDialog背景我自己的颜色 我本来想用Gradient作为我的背景 我该如何使用它 DecoratedBox是需要的东西 但我不知道该用什么包裹起来 谁能给
  • logcat 信息出现在 Android Studio 的“运行”选项卡中

    我的 android studio 运行选项卡很简单 然后它变得更难并给我更多信息 例如 logcat 中的信息 如何禁用或删除第二张图片中出现的更多信息并返回到第一张图片中的第一个外观 我只需要正在运行的 flutter 应用程序的日志输
  • Flutter 和 Firebase - 使用 firebase_storage 和 firebase_auth

    使用 firebase 包 https pub dartlang org packages firebase auth https pub dartlang org packages firebase auth https pub dart
  • 如何更改或替换 Flutter 中的 ImageCache?

    我想更改 Flutter 应用程序中 ImageCache 的行为 例如 我想尝试不同的驱逐策略 或者 我只是想要零缓存 用于实验 如何替换更改ImageCache 创建一个继承自 WidgetsFlutterBinding 的类 重写该类
  • 天文台服务器启动失败 - 无法创建套接字服务器

    我正在为自己构建一些内部工具 以使用我设置的一些模板以及可以在应用程序之间共享的一些附加功能来生成 Flutter 应用程序 目前 代码可以编译 构建并部署 但它会卡在第一个视图 空白屏幕 上 并在失败之 前重试启动 Observatory
  • viewportFraction < 1.0 的 PageView 非中心对齐

    当您为 PageController 创建 viewportFraction 值为 我希望当前页面捕捉到视口的顶部 而下一页呈现在底部栏下方 我尝试对每个页面应用转换 Transform translate offset Offset 0
  • 保存用户可以访问的 Flutter Android 应用程序中的文本文件

    我在 Flutter 中开发的 Android 应用程序的用户应该能够将一些数据保存 导出 到文本文件中 用户应该能够使用其他应用程序 包括文件管理器 在其 Android 设备上找到并访问此文件 我想 final directory aw
  • Flutter:在 Android 上获取本地 IP 地址

    如何在 Flutter 中获取我的 Android 设备的本地 IP 地址 这应该是 当连接到 WIFI 时 我的路由器通过 DHCP 分配的本地 IP 地址 如果连接到 VPN 则由我的 VPN 服务器分配的 VPN 网络中的本地 IP
  • Flutter / FireStore:如何在 Flutter 中显示 Firestore 中的图像?

    我想将我在应用程序中使用的一些图像放入 Firestore 并从那里显示它们 而不是将它们作为资产捆绑在我的应用程序中 为了做到这一点 我想出了以下解决方案 对于我想要显示图像的项目 我创建了一个 Firebase 文档 其中有一个字段存储
  • Dart:使用 html 导入时隔离不起作用

    我在 Dart 中发现了这种非常奇怪和不幸的行为 当我在主文件中导入 dart html 时 我的 Isolate 停止工作 使用我的文件 isolate dart main print BAM 这会打印 BAM import dart c
  • DraggableScrollableSheet 拖动时不会给出工作表的当前位置

    在flutter中我们有一个小部件可拖动可滚动表 现在我想要子元素拖动时的当前位置或当前大小 目前还没有办法获得该值 它在其构建器方法中提供了 ScrollController 但那是在列表滚动时而不是在拖动列表时 那么还有另一种方法可以跟
  • Dart 客户端 HttpRequest 错误/身份验证处理

    我有一个 Dart 客户端和一个 Java 后端 我正在尝试增加应用程序的安全性 因此 Java 服务器要求用户在访问数据之前进行身份验证 如果传入 Web 服务调用并且用户未经过身份验证 则后端服务会将带有 HttpResponseCod
  • 如何使用 Dart 构建枚举? [复制]

    这个问题在这里已经有答案了 Dart 语言没有枚举 还没有 至少在语言功能出现之前 构建枚举的正确或惯用的方法是什么 Dart 现在支持枚举 这个答案的其余部分适用于 Dart 1 8 请使用 Dart 对枚举的正式支持 在另一个答案中进行
  • 是否可以从图像中获取图像 GPS 位置坐标?

    我正在构建一个 Flutter 应用程序 用户可以在其中发布照片及其位置 用户可以从相机或图库中获取图片 如果用户从相机拍照 我可以使用设备的 GPS 位置来设置图片的位置 我正在尝试根据图片的元数据获取图片的 GSP 位置 但是 我还没有
  • Flutter - 删除 ListView 中项目之间的空间

    我正在使用 ListView builder 函数来创建项目列表 然而 iOS 中每个项目之间的空间很大 截图 你知道如何删除项目吗 看来是默认的 因为我没有添加它 code 列表显示 return Scaffold body ListVi

随机推荐