如何通过Map<>将快照键和值拉入列表?

2023-12-12

我一直在关注使用实时数据库的官方 Firebase 教程:https://www.youtube.com/watch?v=sXBJZD0fBa4

我能够从 firebase 实时数据库中提取所有数据。但是,下面的方法提供了数据列表,但不引用父键 (snapshot.key)。理想的情况是在 Item 类 (item.key) 中拥有一个键属性,这样我就可以直接从列表中调用它。

class DatabaseModel {

  final itemsRef = FirebaseDatabase.instance.ref().child('/Contents');

  Stream<List<Items>> getItemssStream() {

    final itemsStream = itemsRef.onValue;

    final streamToPublish = itemsStream.map((event) {

      final itemsMap = Map<String, dynamic>.from(event.snapshot.value as Map<String, dynamic>);

      final itemsList = itemsMap.entries.map((element) {
        return Items.fromRTDB(Map<String, dynamic>.from(element.value));
      }).toList();

      return itemsList;    

    });

    return streamToPublish;
  }
  
}
class Items{
  final String item;
  final String expiryDate;
  final String quantity;
  final String user;

  Items({required this.item, required this.expiryDate, required this.quantity, required this.user});

  //Mapping from real-time database
  factory Items.fromRTDB(Map<String, dynamic> data) {
    return Items(
      item: data['item'],
      expiryDate: data['exp'],
      quantity: data['qty'],
      user: data['user'],
    );
  }
  
}

在此代码中,您仅使用element.value结果中每个节点的:

return Items.fromRTDB(Map<String, dynamic>.from(element.value));

如果您还想获取每个项目的密钥,则还必须使用element.key在那里并将其传递给你的Items object.


像这样的事情:

Items.fromRTDB(element.key, Map<String, dynamic>.from(element.value));

...

class Items{
  final String key;
  final String item;
  final String expiryDate;
  final String quantity;
  final String user;

  Items({required this.key, required this.item, required this.expiryDate, required this.quantity, required this.user});

  //Mapping from real-time database
  factory Items.fromRTDB(String key, Map<String, dynamic> data) {
    return Items(
      key: key,
      item: data['item'],
      expiryDate: data['exp'],
      quantity: data['qty'],
      user: data['user'],
    );
  }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何通过Map<>将快照键和值拉入列表? 的相关文章

  • Firebase 存储 URL 不断随着新令牌的变化而变化

    我正在尝试使用 firebase 数据库和存储构建社交媒体应用程序 以下是预期的流程 用户上传个人资料图片 该图片存储在当前用户文件夹中的 Firebase 存储中 并且 URL 存储在 Firebase 数据库中以便快速访问 工作正常 用
  • SingleChildScrollView 内垂直居中的小部件

    我是 Flutter 新手 所以我通过制作一个简单的表单来训练自己 我意识到当我在 iPhone 上调试时 虚拟键盘触发了一个错误 A RenderFlex overflowed by 29 pixels on the bottom 我通过
  • 如何在 Flutter 中解码 Gzip Http 响应?

    我是颤振新手 我正在发出网络请求 并且得到了正确的响应 但数据已被压缩 我已经在 Swift 中解压了相同的内容 但是对于 Flutter 我无法做到这一点 有人可以帮忙吗 这是我尝试过的 import dart convert impor
  • 导出 Firestore 收集数据、编辑并重新上传

    我创建了一个 Google Cloud 帐户并完成了所有设置 但由于某种原因 我无法弄清楚如何将 Firestore 数据导出到 文件 编辑 添加到该文件并重新上传 我读了好几遍这篇文章 https firebase google com
  • 在 flutter 中创建图像蒙版

    Flutter 提供了多种基于路径 即剪辑路径 的遮罩方法 我正在尝试找出一种方法 可以拍摄具有透明层的图像 如下例所示 并使用该图像来掩盖另一个图像 视图或作为通用蒙版 我的第一直觉是看自定义Paint类 https api flutte
  • Android minSdkVersion 与 Flutter(v2.8.1)

    我已经安装了 firebase 包 据我们所知minSdkVersion 19被推荐 所以 我想做这个过程 但是 我看到这一行包含在android app build gradle file minSdkVersion flutter mi
  • 如何在 Firebase 上随机获取相同的数据?

    我有用户表和这段代码 getOnline 代码和连接按钮 var onlineStatus firebase database ref users firebase auth currentUser uid online onlineSta
  • Flutter 的 %1 安装错误不是有效的 win32 应用程序

    我是颤振的新手 并尝试通过以下步骤安装它 1 下载并解压到驱动器中 2 在环境变量中设置路径 现在我正在尝试运行 flutter doctor 它向我显示以下错误 请检查是否有人遇到同样的问题 谢谢 Flutter Channel beta
  • 使用 OneSignal/Firebase 从 iOS 设备发送推送通知

    我正在开发一个应用程序 并试图找出当不同用户执行特定操作时如何通知特定用户 我试图避免设置自己的后端服务器 因为我相信我想做的事情可以通过 OneSignal Firebase 来完成 我还没有尝试过 但我认为每个用户都可以获得自己的 On
  • 如何清理 Firebase 托管中旧的部署版本?

    每次部署到托管的 Firebase 时 都会创建一个新的部署版本 以便您可以回滚并查看部署者 这意味着每次部署的每个文件都会被存储并占用更多空间 除了手动将每个已部署的版本一一删除之外 是否有任何自动化的方法来清理那些无用的文件 你是对的
  • 有没有办法确定 Firebase 用户的 UID 是否有效?

    我正在构建一个服务器路由 我希望限制该路由仅供经过身份验证的用户使用 我计划将带有 POST 的 user uid 发送到此路由 并且我想验证该 UID 是否存在于 Firebase 中 我知道我可以在 Firebase 中手动添加 UID
  • 有没有办法将标签文本垂直放置在 flutter Charts_flutter: ^0.8.1

    我正在尝试使用创建一个图表charts flutter 0 8 1颤振中的包 这是我的代码 我已经添加了SlidingViewport and PanAndZoomBehavior in behaviour charts BarChart
  • 使用firebase云函数从firebase数据库中删除节点

    我正在尝试创建一个 Firebase 云函数来从 Firebase 数据库中删除节点 日志消息显示该函数执行 正常 但似乎没有从数据库中删除任何元素 我在接受的答案的帮助下编写了该函数如何删除 Firebase 中的数据 https sta
  • 在应用程序开发中缩放字体大小的理想方法是什么?

    我知道这个问题可能听起来有点奇怪 我是 Flutter 开发的新手 在使我的应用程序响应时 我在缩放文本时总是遇到问题 如果我保持字体大小不变 例如 10 或 20 有时在高分辨率设备上看起来太小 在小手机上看起来太大 然后我尝试根据屏幕尺
  • 如何围绕指定的锚点以 2D 方式旋转容器小部件?

    我想对容器小部件 包含一些其他小部件 执行非常简单的 2D 旋转 该小部件将围绕中心的单个固定点旋转 不会变形 我尝试使用transform财产与Matrix4 rotationZ 这有点起作用 但锚点在top left角落 不在cente
  • java.lang.IllegalStateException:需要 .、< 或 ;,但在解压时发现 firebaseperf

    在我的应用程序中集成性能 SDK 后 gradle 在构建项目时打印以下警告 java lang IllegalStateException 需要 Ljava lang Object Lcom google android gms inte
  • 如何为 Firebase 云功能设置 vpc 连接器?

    Firebase Cloud Functions 在 GCP 之上运行 因此 它们是否支持使用专有网络连接器 https cloud google com functions docs connecting vpc 我想要实现的目标是限制转
  • Dart/Flutter 如何编译到 Android?

    我找不到任何具体的资源 Dart 是否被编译到 JVM 或者 Google 的团队是否编译了 Dart VM 以在 JVM 上运行 然后在 JVM 内的 Dart VM 中运行 Dart 前者更有意义 并且符合 无桥 的口号 但后者似乎更符
  • Firebase:用户注册后如何进行电话号码验证?

    所以我知道我可以使用电子邮件验证或电话号码验证 但我想做的是在用户注册或登录后进行电话号码验证 如何连接这两种身份验证方法 最后 Firebase中是否有一个函数可以检查用户是否通过电话号码验证 谢谢 即使用户已通过身份验证 您仍然可以使用
  • 使用部分字符串匹配进行 Firebase 查询[重复]

    这个问题在这里已经有答案了 假设我有一个简单的 firebase 实时数据库结构 其中关键是username其值为userid 现在我想搜索userid by username 如果用户名匹配 这很容易 但如何获得部分匹配的答案 更清楚地说

随机推荐

  • 即使指定了 WebGet 属性,WCF 代理也使用 Post(仅当从另一个 WCF 服务调用时) - 导致 405 错误

    我有一个 Restful WCF 服务位于另一台服务器上 配置了 WebGet 属性来响应 HTTP Get 方法 我知道该服务工作正常 因为我可以直接通过浏览器调用该服务 并使用 Fiddler 手动执行 Get 并收到正确的响应 我的本
  • 在 Unity3d 中将完整的相机视图 (16:9) 渲染到纹理上

    我正在研究 Unity 的渲染纹理 您可以将相机的视图渲染到纹理上 然而 我注意到它并没有渲染整个相机的视图 它仅渲染相机视图的方形切片 我正在尝试的是将相机的整个视图 16 9 长宽比 渲染到纹理 也是 16 9 长宽比 上 但现在它似乎
  • Java 中的线程数有硬性限制吗?

    Some sources比如说 你对 Java 中的线程数量有一个硬性限制 比如 15k 或 30k 即使你没有操作系统上限和无限的 RAM 我还听说 在 Java 7 中这个限制被取消了 这两种说法都属实吗 The Java虚拟机规范没有
  • MonoTouch/iOS 设备 (iPhone/iPad) 上的 protobuf-net 发生 JIT 编译错误

    我正在使用 protobuf net v2 beta r450 二进制发行版 并使用此处描述的技术提前构建序列化程序集 http www frictionpointstudios com blog 2011 3 31 using proto
  • 使用核心动画对图像进行排序,接收内存警告

    我使用 100 个动画图像收到内存警告 因此我尝试使用 Core Animation 但这给了我同样的问题 这是因为我不知道如何在当前代码中使用replaceSublayer UIView upwardView UIView alloc i
  • 异常安全和 make_unique

    只是为了澄清 使用make unique仅当表达式中有多个分配 而不仅仅是一个 时才增加异常安全性 对吗 例如 void f T f new T 是完全异常安全的 就分配和东西而言 而 void f T T f new T new T 是不
  • WCF ServiceHost basicHttpBinding 503 错误

    我正在尝试在 Windows 2007 SP1 服务器上将 WCF ServiceHost 作为 NT 服务运行 ServiceHost 负责托管单个服务端点 具有以下地址的 basicHttpBinding http localhost
  • RemoteControlReceivedWithEvent 在 iOS 7.0 设备上调用,但在 iOS 8.0 上不调用

    我有一个在后台播放音频的应用程序 我正在尝试修复主屏幕 等 上的音频控件 播放 暂停 在 iOS 8 0 上无法工作但在 iOS 7 0 上工作正常的错误 我一直在努力找出问题所在 但一无所获 任何想法将不胜感激 这是我所拥有的 在项目设置
  • 从图库中选择一张图像

    我看过很多关于此的帖子 看起来下面的代码应该可以工作 我已经创建了一个 SD 卡映像并将其添加到模拟器中 并且工作正常 Intent intent new Intent Intent ACTION PICK intent setType i
  • 将鼠标悬停在 div 上会影响外部元素[重复]

    这个问题在这里已经有答案了 我试图在 div 悬停时影响外部元素 像这样的事情 div class affected Hi div div div class hover me div div CSS hover me hover affe
  • Javascript 世界时钟仅显示在表中

    我试图显示世界各地几个不同城市的时间 我已经搜索和谷歌 甚至使用了这里找到的答案 PHP 或 JavaScript 中的世界时钟 API 但时钟只会显示在表格中 我使用了这个网站的教程 http www proglogic com code
  • 字体大小缩放问题

    我正在编写一个 C wxWidgets 计算器应用程序 我希望 wxTextCtrl 的字体和自定义按钮在调整窗口大小时能够缩放 问题是 我的按钮中的文本并不总是精确地位于中心 但有时会稍微偏离 特别是在绿色和红色按钮中 当我最大化窗口时
  • Python list 要列出的字符串

    我有一个字符串 s 7 9 41 32 67 我需要将该字符串转换为列表 l 7 9 41 32 67 问题是 当我使用列表时 我得到这个 7 9 4 1 3 2 6 7 我正在使用 python 3 2 You can完全按照您的要求使用
  • macOS Big Sur:意外的产品版本 11.1。如何修补 perlbrew?

    我刚刚将我的 Macbook Air 从 10 15 更新到 11 1 然后尝试使用 perlbrew 安装 perl 5 32 perlbrew install perl 5 32 0 Installing Users hakonhaeg
  • 轻松循环遍历 ElasticSearch 文档源数组

    我对网上商店中的产品有以下 ElasticSearch 数据结构 index vue storefront catalog 1 product 1617378559 type doc source configurable children
  • 使所有自动递增整数具有相同的位数且带有前导零

    我想知道是否有一种方法可以将我的 id 列 自动递增 设置为始终使用 mysql 表中的前导零组成 5 位数字 所以第一个值将是 00001 然后 00002 等等直到 99999 而不是 1 2 3 直到 99999 谢谢 尝试添加ZER
  • 快速更改 tableviewcell 的宽度

    我有一个使用 IB 的 tableView 以及自定义单元格和原型单元格 我试图使单元格的宽度比 tableView frame 短一点 以便在左右角之间留出一点空间 var cell tableView dequeueReusableCe
  • 如何在jquery对象上调用raphael方法?

    我正在使用拉斐尔创建一些圆圈 当用户单击按钮时 我想为这些圆圈设置动画 通过增加其半径 我该怎么做呢 例如 这是我的示例代码
  • Spring / JTA / JPA 单元测试:回滚不起作用

    我正在尝试使用 Spring 测试实体 EJB3 EJB 本身不使用 Spring 我希望尽量减少生产 JPA 配置的重复 例如 不重复 persistence xml 我的单元测试似乎有效 但即使我的单元测试应该是事务性的 数据也会在各种
  • 如何通过Map<>将快照键和值拉入列表?

    我一直在关注使用实时数据库的官方 Firebase 教程 https www youtube com watch v sXBJZD0fBa4 我能够从 firebase 实时数据库中提取所有数据 但是 下面的方法提供了数据列表 但不引用父键