从 Firebase 快照数组中获取数据

2024-01-02

我有一系列 Firebase 快照var guardians: Array<FIRDataSnapshot> = []。我想使用如下循环访问每个快照的子值:

 print(self.guardians)
 for snapshot in self.guardians{
     let guardianID = (snapshot.value as? NSDictionary)?["guardian"] as? NSString

但我的监护人 ID 一直为零。如何从该数组中获取特定的子值?作为参考,以下是 self.guardians 打印到控制台的内容:

[Snap (guardians) {
    "-KQaU9lVcUYzIo52LgmN" =     {
        dependent = sJUCytVIWmX7CgmrypqNai8vGBg2;
        guardian = jY2MtbIw4rQmgcZwTbLXNrL7tDq2;
    };
}]

我正在使用 Swift 3 和 Xcode 8。

Thanks!


我不确定在不知道数组是如何构建的情况下是否可以回答这个问题。一个问题是 For-in 循环变量是一个 NSFastEnumerationIterator,因此需要将其向下转换为您想要的“事物”类型。您可能已经这样做了,因此这仅供将来参考。

话虽这么说,我编写了一些代码并对其进行了一些分解 - 也许它会为您指明正确的方向。

下面的代码通过 .value 读取所有节点,然后迭代快照并将每个子节点作为 FDataSnapshot 存储在数组中。然后代码迭代该数组并打印数组中存储的每个快照的“监护人”。

我还包含了打印监护人 ID 的代码,它也有效,所以我猜测问题在于数组最初填充的方式或在这一行中

self.guardians 中的快照

因为快照是一个 NSFastEnumerationIterator

let ref = self.myRootRef.child(byAppendingPath: "guardian_node")!

ref.observe(.value, with: { snapshot in

     if ( snapshot!.value is NSNull ) {
          print("not found")
     } else {

          var guardianArray = [FDataSnapshot]()

          for child in snapshot!.children {
               let snap = child as! FDataSnapshot //downcast
               guardianArray.append(snap)
          }

          for child in guardianArray {
               let dict = child.value as! NSDictionary
               let thisGuardian = dict["guardian"]!
               print(thisGuardian)

               //your code
               let guardianID = (child.value as? NSDictionary)?["guardian"] as? NSString
               print(guardianID!)
          }
     }
})

*这是 Swift 3 和 Firebase 2.x,但概念是相同的。

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

从 Firebase 快照数组中获取数据 的相关文章

  • 如何接收有关与我共享的记录中所做更改的 CloudKit 通知?

    我有两个 iCloud 帐户 A and B 在两个不同的设备上 来自其中之一 A 我将 ckrecord 分享给另一个人 B 像这样 let controller UICloudSharingController controller p
  • 减少 CoreData 的调试输出?

    我正在开发一个使用 CoreData 的 iOS macOS 项目 它工作正常 但它会向控制台输出大量调试信息 这使得控制台无法使用 因为我的打印语句隐藏在所有与 CoreData 相关的内容中 我有一个非常简单的 CoreData 设置
  • 如何计算特定字符在字符串中出现的次数

    我正在尝试创建一个函数来查看数组中的任何字符是否在字符串中 如果是 有多少个 我尝试计算每一种模式 但是太多了 我尝试使用 Python 中的 in 运算符的替代方案 但效果不佳 function calc fit element var
  • 如何让按钮闪烁?

    我试图在扫描正确时将按钮的颜色 只是闪烁 闪烁 更改为绿色 在出现问题时将按钮的颜色更改为红色 我可以用这样的视图来做到这一点 func flashBG UIView animateWithDuration 0 7 animations s
  • 什么是 WKWebView 中的 WKErrorDomain 错误 4

    fatal error LPWebView encounters an error Error Domain WKErrorDomain Code 4 A JavaScript exception occurred UserInfo 0x7
  • Javascript 在数组索引上传播以将新项目“推送”到嵌套数组

    考虑以下数据 let data foo true bar 1 2 3 foo true bar 8 9 我试图push嵌套的东西bar索引上的数组1使用扩展语法 https developer mozilla org en US docs
  • Apple Mach-O 链接器错误(静态,不是 ld)

    我最近遇到了 Apple Mach O 链接器错误 大多数指南建议将 构建设置 中的位码更改为 否 但它仅适用于 ld 错误 这与我的不同 我会提供截图 请帮忙修复bug pod HandySwift 导致了错误的出现 这是它的 Githu
  • Flutter 应用程序在 iOS 平台的 firebase 电话身份验证中崩溃

    我在我的项目中实现了 Firebase Phone auth 在 Android 端 一切正常 但对于 iOS 端 当我尝试从我的端发送验证码时 应用程序崩溃并失去连接 我已在下面提交了我的代码 主程序 dart class MyApp e
  • 使用workmanager时Firestore脱机持久性错误

    我正在使用一个WorkManger定期从我的中检索信息Firestore当应用程序处于后台和前台时的数据库 此信息用于根据状态更新 UI 因此不同的状态会添加或删除 UI 的不同部分 第一次运行时效果很好 但是 一旦应用程序处于后台并且Wo
  • Firestore - 从文档中获取特定字段

    我需要的 我想在 Firestore 中保存文章或注释及其各自的字段 Title 内容 文本或段落 创建日期 所有者 与其他人分享该文章 人和谁可以编辑它们 例如 https firebase google com docs firesto
  • 有没有办法在 Firebase 中等待查询完成?

    我正在使用 TableView 在 Viewcontroller 中的 iOS 应用程序中进行查询 我想确保在继续加载 TableView 之前我的查询已经返回 有没有办法保证查询已经完成 None
  • 谷歌云功能发送重复通知

    我有一个发送主题通知的 gcf 我从管理 Android 应用程序触发该功能 一切都按预期工作 但突然该函数发送通知两次 有时三次 谷歌云上的函数日志显示该函数已发送一条通知 它只打印一行 定制发送成功 但 Android 应用程序会收到多
  • 使用数组中的字符串淡入/淡出标签

    func setOverlayTitle self overlayLogo text Welcome var hello String Bon Jour GUTEN nMORGEN BONJOUR HOLA BUENOS D AS BUON
  • Swift:长按手势识别器 - 检测轻击和长按

    我想连接一个动作 如果手势是点击 它会以特定的方式为对象设置动画 但如果按下持续时间超过 0 5 秒 它会执行其他操作 现在 我刚刚连接了动画 我不知道如何区分长按和点击 如何访问新闻持续时间以实现上述目的 IBAction func ta
  • JavaScript 中的埃拉托斯特尼筛法对大量数据无限运行

    我一直在尝试写埃拉托斯特尼筛法 http en wikipedia org wiki Sieve of EratosthenesJavaScript 中的算法 基本上我只是按照以下步骤操作 创建从 2 到 n 1 的连续整数列表 令第一个素
  • 使用 Tkinter 显示 numpy 数组中的图像

    我对 Python 缺乏经验 第一次使用 Tkinter 制作一个 UI 显示我的数字分类程序与 mnist 数据集的结果 当图像来自 numpy 数组而不是我的 PC 上的文件路径时 我有一个关于在 Tkinter 中显示图像的问题 我为
  • 在 SwiftUI 中使用可观察对象切换视图

    我正在练习尝试使用 SwiftUI 中的可观察对象切换视图 但我的代码无法正常工作 我知道我可以用 State 来做到这一点 但我想用可观察的对象来实现这一点 当我单击内容视图中的图像时 图像不会改变 有人能帮我吗 内容视图 swift i
  • 如何在 Swift 2.0 中使用 stringByAddingPercentEncodingWithAllowedCharacters() 作为 URL

    我在 Swift 1 2 中使用过这个 let urlwithPercentEscapes myurlstring stringByAddingPercentEscapesUsingEncoding NSUTF8StringEncoding
  • 使用日期 Swift 3 对字典数组进行排序

    我有一个名为 myArray 的数组 其中添加了字典 我希望该字典按时间排序 这是字典中的键 那个时间是在 String 中 时间的日期格式为 yyyy MM dd HH mm ss 我尝试使用下面的代码解决方案 但给出了 从 字符串转换
  • Firebase 添加新节点

    如何将这些节点放入用户节点中 并创建另一个节点来存储帖子 我的数据库参考 databaseReference child user getUid setValue userInformations 您需要使用以下代码 databaseRef

随机推荐

  • AxisFault:Server.userException 是什么意思?

    以下 AxisFault 是什么意思 这是否意味着 服务器发出和接收的请求以及服务器抛出 未捕获的 异常 因此该异常被返回给客户端 or 我的 Web 应用程序无法创建 SOAP 请求 因此该请求甚至不是从客户端应用程序发送的 注意 我是网
  • 为什么需要调用 close() 或 shutdown() 方法?

    我是 Java 新手 高中时有一些 C 背景 现在我正在尝试做一些事情 我选择了 Java 作为编程语言 我已经完成了我的作业并查看了很多关于 Java 的 析构函数 的内容 完成 方法 以及close or 关闭 方法 但我仍然认为我不知
  • Python 中哪个最好:urllib2、PycURL 还是 mechanize?

    好的 我需要使用 Python 下载一些网页 并对我的选项进行了快速调查 Python 中包含 urllib http docs python org library urllib html 在我看来我应该使用 urllib2 代替 url
  • Linux 相当于 DOS 暂停的是什么?

    我有一个 Bash shell 脚本 我想在其中暂停执行 直到用户按下某个键 在 DOS 中 这可以通过以下命令轻松完成pause命令 我可以在脚本中使用 Linux 等效项吗 read做这个 user host read n1 r p P
  • 最小、独立、可分发、跨平台 Web 服务器

    我最近一直在编写相当多的小型 wsgi 应用程序 并且正在寻找一个可以分布式 预先配置为运行特定应用程序的 Web 服务器 我知道像twisted和cherrypy这样的东西可以为wsgi应用程序提供服务 但它们似乎缺少我的一个关键功能 即
  • 最佳 2D 调色板排列算法

    给定一组256我想创建一个颜色16 x 16 调色板从这些颜色中 颜色之间所有 4 个相关差异的总和最小 当然有256个 不同的安排 因此不考虑暴力 我尝试使用贪婪算法 从最接近黑色的颜色开始 然后以之字形对角线方式穿过 16x16 网格
  • 从 BeautifulSoup 中的 JSON 对象中解析出特定值

    import urllib from urllib import request from bs4 import BeautifulSoup url http mygene info v3 query q symbol CDK2 speci
  • 如何使用 Marmalade 编译 Cocos2d-X?

    有谁知道教程 或者三个简单的步骤来编译我用 Cocos2d x 和 Marmalade 编写的代码 我想将我已经在 Cocos2d X 中编译和使用的代码插入到 marmalade 项目中 然后进行编译 很多地方都写得很简单 但我却很难做到
  • 如何在生成的 html 代码中插入换行符

    我正在使用 codeigniter 生成一个 html 表以插入到模板视图中 不幸的是 这在一行中以非常长的字符串形式出现 例如 table class table table bordered table striped tbody tr
  • Typescript 2.1.5 不支持函数调用

    我有以下 ngrx 减速器功能 export const raceReducer ActionReducer
  • Playground 执行失败:错误:无法查找符号 - 使用 swift 在 xcode 中的 Playground

    我刚刚开始使用游乐场并尝试运行一些基本代码 例如 import UIKit var str Hello playground 我想它应该实时运行 但在我的情况下需要永远运行 一段时间后 我收到以下错误 Playground executio
  • ElasticSearch 文档值有哪些缺点

    该文档声称 10 25 slower than in memory fielddata and It is possible that doc values will become the default format in the nea
  • 通过 Ref 创建 React Portal

    我想创建一个 Portal 组件 该组件应该附加到它的容器组件 但不是通过容器的 ID 而是通过它的引用 换句话说 我不想将 document getElementById CONTAINER ID 作为第二个参数传递给 ReactDOM
  • 在引导下拉菜单上添加延迟

    我试图找到在这个引导下拉菜单上添加延迟的最简单的方法 http www bootply com 64074 http www bootply com 64074我尝试了各种方法和脚本 但似乎无法做到 我添加了一个 css 行以允许鼠标悬停时
  • 在文件中查找并替换并覆盖文件不起作用,它会清空文件

    我想通过命令行对 HTML 文件运行查找和替换 我的命令看起来像这样 sed e s STRING TO REPLACE STRING TO REPLACE IT g index html gt index html 当我运行它并随后查看该
  • 使用 cut 命令删除多列

    给定输入 echo 1 2 3 4 5 6 7 8 9 100 如果我想剪掉第5列我可以做 cut d f 4 6 如果我想剪切多个不连续的列 例如 5 7 等 怎么办 有单班轮吗 您应该能够直接在现有的中继续序列 f规格 要同时跳过 5
  • Sink不释放文件

    我知道sink 函数可用于将 R 输出转移到文件中 例如 sink sink closing txt cat Hello world sink 是否有一个简单的命令来关闭所有未完成的接收器 下面 我详细阐述一下我的问题 假设我的 R 脚本打
  • 在框架目标中包含 pod:找不到文件

    我正在使用框架目标 为了更好的代码重用和 IB Designables 并且我已经有了一个完美运行的框架目标 我决定也将其他一些类移至框架目标 我已经设置了 Pod 在本例中只有一个 但每当我尝试包含该 Pod 时 我都会收到 未找到 错误
  • 如何根据客户端浏览器的语言重写 nginx 中的位置?

    如何根据客户端浏览器的语言重写 nginx 中的位置 例如 我的浏览器接受语言是 uk ru en 当我请求位置 mysite org 时 nginx 必须转发到 mysite org uk 当您无法将 AcceptLanguageModu
  • 从 Firebase 快照数组中获取数据

    我有一系列 Firebase 快照var guardians Array