首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SWIFT2.3中的Firebase queryEqualToValue get密钥

SWIFT2.3中的Firebase queryEqualToValue get密钥
EN

Stack Overflow用户
提问于 2016-10-29 05:01:44
回答 1查看 851关注 0票数 0

我正在使用Swift和Firebase在iOS中开发一个小应用程序。我在查询数据和检索值时遇到了困难。我的实时数据库是这样的:

代码语言:javascript
复制
"qrcode" : {
   "postsedation_room" : "http://bing.com",
   "preprocedure_room" : "http://google.com",
   "presedation_room" : "http://en.m.wikipedia.org"
}

我想提出以下问题:

代码语言:javascript
复制
let query = rootRef.child("qrcode").queryEqualToValue("http://bing.com")

query.observeSingleEventOfType(.Value, withBlock: { snapshot in
   print(snapshot)
})

打印一个键值"postsedation_room“。此时,打印的结果是Snap (qrcode) <null>,您能帮我打印给定子值的键吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-29 05:14:28

当您对Firebase数据库执行查询时,可能会有多个结果。因此,如果附加值观察者,则快照包含这些结果的列表。即使只有一个结果,快照也会包含一个结果的列表。

所以在你的观察者中,你需要处理这个列表。最简单的方法是迭代它:

代码语言:javascript
复制
let query = rootRef.child("qrcode").queryOrderedByValue().queryEqualToValue("http://bing.com")

query.observeSingleEventOfType(.Value, withBlock: { snapshot in
   for child in snapshot.children {
      print(child.key)
   }
})

或者,您可以观察单个childAdded eventL。

代码语言:javascript
复制
let query = rootRef.child("qrcode").queryEqualToValue("http://bing.com")

query.observeSingleEventOfType(.ChildAdded, withBlock: { snapshot in
   print(snapshot.key)
})
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40316200

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档