Swift Firebase 快照到对象模型

2024-02-22

我正在使用一个大型 Firebase 数据库,该数据库至少有 6 层层次结构,并且每个节点有许多子节点。我想解析整个快照并将其转换为对象模型。我发现this https://stackoverflow.com/questions/35514497/firebase-in-swift-nested-query-not-working-properly解决方案,但在我看来,它的效率极低,因为解析每个节点的子节点都需要调用 firebase,这会呈指数级增加延迟。有没有办法让“ref.observeSingleEvent”在本地完成,而不是调用 firebase?任何其他更好的选择将不胜感激。


//this goes into your call (observeSingleEvent)
let enumerator = snapshot.children //assuming you use snapshot as name
    while let rest = enumerator.nextObject() as? FIRDataSnapshot {
       // this loops through every child in that map   
      let values = (rest as! DataSnapshot).value as? NSDictionary
      let coins= values?["coins"] as? Int ?? 0 
      //above code looks for a key with username and grabs the value from that. If it is not a string value it returns the default value.
      //use above code for picture 1
      if (rest as! DataSnapshot).key == "slot"{
        let enumeratorMap1 = (rest as! DataSnapshot).children
        while let rest2 = enumeratorMap1.nextObject() as? FIRDataSnapshot { 
         let valuesMap1 = (rest2 as! DataSnapshot).value as? NSDictionary
         //loop through values in new map
        //use this methodes for looping through maps, as stated in picture 2
         //keep repeating this method for any child under the map
          }
       }
    }

Picture 1: enter image description here

Picture 2: enter image description here

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

Swift Firebase 快照到对象模型 的相关文章

  • 具有动态警报正文的快速本地通知

    所以我可以创建一个像这样的本地通知 var localNotification UILocalNotification localNotification fireDate NSDate timeIntervalSinceNow 7 loc
  • 如何检测 swiftui 中是否存在键盘

    我想知道按下按钮时键盘是否存在 我该怎么做 我已经尝试过 但我没有任何运气 谢谢 使用该协议 KeyboardReadable 你可以符合任何View并从中获取键盘更新 KeyboardReadable协议 import Combine i
  • 从 NavigationController 中删除 ViewController 后 AVPlayer 继续播放

    因此 我在项目中使用 ARC 当我添加 AVPlayerLayer 时 它工作得很好 但当我从 UINavigationItem 中弹出 UIViewController 时 视频继续在后台播放 有谁知道你会如何处理这个问题 这似乎是一件很
  • 在 Xcode5 中使用 XCTest 时 AFNetworking 导致错误

    我正在使用 Xcode 5 现在刚刚开始对现有项目进行单元测试 为此我添加了CocoaTouch Unit Testing Bundle作为我的项目的目标 目标名称是 MyAppTests 我之前使用添加了 AFNetworking 库Co
  • 使 iOS 应用程序与 iPhone 6 和 iPhone 6 尺寸兼容 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我创建了一个应用程序 其中使用 xib 进行布局 目前我使用两种不同的 xib 一种用于iPhone4 320 480 一种用于iPh
  • Firebase 部署无法找到 firebase.json

    所以 我是编程新手 仍在学习一些东西 顺便说一句 我使用 Windows 我尝试制作一个应用程序 将其连接到 firebase 设置完所有内容后 就可以设置 CLI 好消息 我成功设置了从节点到 nvm 的所有内容 直到在 CLI 中成功启
  • 启动深色或浅色模式的图像

    如何为深色模式和浅色模式选 择一组不同的启动图像 我有一个 LaunchImages 集 当应用程序启动时 会显示一个图像 对于浅色模式 这似乎不错 但是如果我尝试在设置为深色模式 iOS 13 的设备上打开我的应用程序 则该图像看起来很糟
  • 重叠的装载机圆

    我试图重现苹果为应用程序 活动 制作的重叠圆圈 见下图 如果您使用标准贝塞尔路径 起始 结束位置将仅在 0 到 2PI 之间产生影响 例如 如果您尝试填充 4PI 即使使用一些阴影 则无法模拟重叠加载 如何制作类似于苹果解决方案的东西来创建
  • 为 Swift 对象/属性设置观察者

    我一直在寻找一种在连接到 Mac 的显示器数量发生变化时触发方法的方法 我知道我可以获得 NSScreen screens count 的值 但我需要找到一种方法来在该值发生变化时创建通知或其他内容 或者指示所连接的显示器数量发生变化的其他
  • iOS UITableViewCell cell.imageView 设置圆角

    嘿我正在尝试设置cell imageView s cornerRadius 但似乎不起作用 cell imageView layer cornerRadius 9 它会起作用还是我应该添加自定义UIImageView在我的牢房里有圆角吗 我
  • 为 iOS 应用程序加载基于 SVG 的图像资源

    我从 thenounproject 购买了一个图标作为 SVG 图像 然后我使用一个名为的 macOS 程序Gapplin http gapplin wolfrosch com 将此 SVG 导出为 PNG 图像 它显示为 100x100
  • 调用 SwiftUI 中位置 #11、#12 处的额外参数 [重复]

    这个问题在这里已经有答案了 我在 SwiftUI 中的切换开关上不断收到 调用中位置 11 12 处有额外参数 错误 我见过其他人有 调用中的额外参数 错误 但答案似乎没有帮助 另外 我的错误是 位置 11 12 我还没有看到其他人发生这种
  • 如何在iOS的Delphi程序中使用IPv6协议

    我尝试在我的移动程序中使用 IPv6 协议 我的服务器位于 NAT 后面的 LAN 内 在服务器上我使用IP端口3000 我已经组织了从路由器端口 45500 到服务器端口 3000 的虚拟服务器 端口转发 在服务器上 我运行 ipconf
  • 以弯曲格式显示文本

    我正在寻找以曲线格式绘制一些文本 我使用哪个控件并不重要 UITextField UILabel or UITextView 我只想显示如图所示的文本 仍在寻找解决方案 请帮忙 查看此链接 https nodeload github com
  • 在 swift 中将简单字符串转换为 JSON 字符串

    我知道有一个同标题的问题here https stackoverflow com questions 30825755 convert string to json string in swift 但在那个问题中 他试图将字典转换为 JSO
  • Swift 中的柯里函数

    我想创建一个返回柯里函数的函数 如下所示 func addTwoNumbers a Int b Int gt Int return a b addTwoNumbers 4 b 6 Result 10 var add4 addTwoNumbe
  • ios 在后台处理推送通知

    我想保存应用程序处于后台状态时到达的推送通知 我知道关于 void application UIApplication application didReceiveRemoteNotification NSDictionary userIn
  • 如何使用 Core Graphics 在我的触摸位置绘制一个圆圈?

    新程序员来了 我在尝试使用 Core Graphics 在触摸位置周围绘制描边弧时遇到问题 我有绘制圆圈的方法工作正常 并且我已经测试并在点击屏幕时注册触摸 但是当我尝试在点击时调用绘制圆圈的方法时 我收到错误 CG ContextBlah
  • NSCFData fastCharacterContents 崩溃? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我目前在控制台中收到此崩溃日志 20
  • 在 HTML5 iOS 7 / iOS 8 中显示十进制键盘

    经过几个小时的搜索后 我只是有一个简单的问题 是否有可能在网络浏览器输入字段中显示小数键盘 input type number 只显示数字 但我需要在左下角使用逗号或点 我尝试过任何事情 pattern step等等 但没有显示十进制键盘

随机推荐

  • epplus 使用 LoadFromCollection 和匿名类型

    我有一个IEnumerabledataSource 其中包含匿名类型的集合 匿名类型的实际结构在设计时是未知的 因此我试图找到一个可以处理任何匿名类型的通用解决方案 如何将它们加载到 epplus 中以创建电子表格 我有一个名为 ws 的工
  • 如何在绘图中添加注释水平或垂直参考线?

    如果这很重要的话 我正在使用 plotly 来进行 R 输出 并使用 shiny 我想向由以下命令创建的水平或垂直参考线添加注释layout shapes 它应该能够动态改变位置 以便无论图表如何放大或缩小 它都保持可见 近似示例 http
  • C 语言:if() 没有 else():使用大括号失败

    我对 IF 表达式后是否需要大括号感到困惑 当使用 IF ELSE 时 我习惯在 IF 和 ELSE 块周围使用大括号 但是当我不使用 ELSE 块时 它可以在没有大括号的情况下工作 并且在有大括号的情况下失败 工作原理 IF 失败 IF
  • 机器人框架 - UnicodeDecodeError:“ascii”编解码器无法解码位置 49 中的字节 0xe9:输入文本时序号不在范围(128)内

    我正在使用 selenium 从数据库查询值以在输入字段中输入 但是 对于某些值 我收到以下错误 UnicodeDecodeError ascii 编解码器无法解码字节 0xe9 位置 49 序数不在范围内 128 当在文本字段中输入的值类
  • 重载 && 和 || 实际上是否有原因?不短路吗?

    运营商的短路行为 and 对于程序员来说是一个了不起的工具 但为什么它们在超载时会失去这种行为呢 我知道运算符只是函数的语法糖 但运算符bool有这种行为 为什么要限制为这种单一类型 这背后有什么技术原因吗 所有设计过程都会导致相互不兼容的
  • 将现有 Webdriver 对象传递给 Robot Framework 的自定义 Python 库

    我正在尝试为 Robot Framework 创建自定义 Python 库 但我对 Python 和 Robot 很陌生 并且不确定如何完成我想要做的事情 我想将 Robot 使用 Selenium2Library 创建的 Webdrive
  • 具有自定义注册控制器的设置设备

    我正在使用 devise 开发一个 Rails 站点 我们还不希望用户注册 用户身份验证使我们可以登录以访问网站的受限部分并添加 编辑我们认为合适的内容 所以现在 我创建了以下控制器 class Users RegistrationCont
  • 如何检查日期是否在日期字符串列表中?

    这将始终打印 false 如何检查日期是否在数组中并打印正确的内容 dates 2012 09 03 2012 10 08 2012 10 09 2012 11 12 more values snipped for brevity 2013
  • 圆柱/圆锥上均匀生成 3D 点

    我希望在圆柱体和圆锥体上 分别 随机且均匀地生成点 圆柱体由其中心 半径和高度定义 锥体规格相同 我能够获得每个形状的边界框 因此我正在考虑在边界框内生成点 但是 我不确定如何将它们投影到圆柱体 圆锥体上 或者这是否是最好的主意 有什么建议
  • Redis 模仿 MASTER/MASTER?或者是其他东西?

    我已经阅读了这里的很多帖子并上网冲浪 但也许我没有问正确的问题 我知道 Redis 目前是主 从 直到 Cluster 可用 但是 我想知道是否有人可以告诉我如何在逻辑上配置 Redis 以满足我的需求 或者它是否不是正确的工具 设想 我们
  • 如何使用 XPath/XSLT fn:json-to-xml

    我需要将 JSON 字符串转换为 XML 字符串 标签确实包含属性 从答案中this https stackoverflow com questions 38783463 how to convert badgerfish style js
  • 多线程访问LinkedList时的线程安全

    我的应用程序需要保留对特定资源的请求的访问日志 并且多个线程将记录日志条目 唯一相关的信息是请求的时间戳 检索的统计信息将是过去 X 秒内发生的请求数量 返回给定秒数的统计信息的方法还需要支持多线程 我正在考虑使用以下方法来处理并发处理Lo
  • 列出多个jar文件的内容

    我正在一堆罐子里寻找 class 文件 jar tf abc jar 适用于一个文件 我试过 find name jar xargs jar tf 不打印任何内容 我能想到的唯一解决方案是全部解压 然后搜索 有没有更好的办法 我在 LUni
  • 我如何判断 RenderAction 是否正在调用我的操作?

    我有一个可能通过普通链接调用的操作 在这种情况下我会返回 View 或者也可以通过 AJAX 或 RenderAction 即作为子操作 调用它 在这种情况下我会返回一个 PartialView 整理 AJAX 部分很容易 但如何测试我的操
  • 尝试执行restclient请求时找不到合适的HttpMessageConverter

    我正在尝试使用Spring for Android rest client发送数据http post 以避免创建和解析 json 数据 来自他们的manual http static springsource org spring andr
  • 增加内存映射文件的大小[重复]

    这个问题在这里已经有答案了 可能的重复 如何动态扩展内存映射文件 https stackoverflow com questions 6096485 how to dynamically expand a memory mapped fil
  • workbox serviceworker 在除 Chrome 之外的任何地方工作:未捕获(承诺中)DOMException

    Workbox 无法在 Chrome 上运行 但在其他地方都可以运行 这很讽刺 因为我相信这是一个谷歌图书馆 显示的错误是 Uncaught in promise DOMException sw js line 1 Chrome Opera
  • 从 Python 中的嵌套列表中删除一列

    我需要帮助弄清楚如何从嵌套列表中删除 列 来修改它 说我有 L 1 2 3 4 5 6 7 8 9 1 2 3 我想删除第二列 因此值为 2 6 1 以获得 L 1 3 4 5 7 8 9 2 3 我一直不知道如何通过删除一列来修改列表 我
  • Qt:QTableWidget/QTableView 在整个视口中交替行颜色

    我有一个 QTableView 包含数据库中的数据行 但是 设置 setAlternatingRowColors true 仅交替具有数据的行颜色 表的其余部分只是白色 这不是您期望的行为 例如 查看任何浏览器的书签列表 空行具有交替颜色
  • Swift Firebase 快照到对象模型

    我正在使用一个大型 Firebase 数据库 该数据库至少有 6 层层次结构 并且每个节点有许多子节点 我想解析整个快照并将其转换为对象模型 我发现this https stackoverflow com questions 3551449