Firebase queryEqualToValue 在 Swift 2.3 中获取密钥
Posted
技术标签:
【中文标题】Firebase queryEqualToValue 在 Swift 2.3 中获取密钥【英文标题】:Firebase queryEqualToValue get Key in Swift 2.3 【发布时间】:2016-10-29 05:01:44 【问题描述】:我正在使用 Swift 和 Firebase 在 ios 中开发一个小型应用程序。我在查询数据和检索值时遇到问题。 我的 firebase 实时数据库是这样的:
"qrcode" :
"postsedation_room" : "http://bing.com",
"preprocedure_room" : "http://google.com",
"presedation_room" : "http://en.m.wikipedia.org"
我想做这个查询:
let query = rootRef.child("qrcode").queryEqualToValue("http://bing.com")
query.observeSingleEventOfType(.Value, withBlock: snapshot in
print(snapshot)
)
打印一个键值“postsedation_room”。
此时打印的结果是
Snap (qrcode) <null>
你能帮我打印出给定子值的键吗?
【问题讨论】:
@EICaptainv2.0 我将如何更改我的代码来解决这个空问题? 【参考方案1】:当您对 Firebase 数据库执行查询时,可能会有多个结果。因此,如果您附加一个值观察者,则快照包含这些结果的列表。即使只有一个结果,快照也会包含一个结果列表。
因此,在您的观察者中,您需要处理该列表。最简单的方法是迭代它:
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
let query = rootRef.child("qrcode").queryEqualToValue("http://bing.com")
query.observeSingleEventOfType(.ChildAdded, withBlock: snapshot in
print(snapshot.key)
)
【讨论】:
我尝试了两种方法,在这两种情况下它都返回null...您还有其他建议吗?以上是关于Firebase queryEqualToValue 在 Swift 2.3 中获取密钥的主要内容,如果未能解决你的问题,请参考以下文章