search儿童价值Firebase / Swift
我的数据库有这样sorting的值:
Users UID Username Email
我想实现一个朋友添加系统,您可以search用户名或电子邮件,它可以让你添加该人。
我可以通过使用find用户
REF_USERS.queryOrdered(byChild: "displayname").queryEqual(toValue: input).observeSingleEvent(of: .value) { (snapshot: FIRDataSnapshot) in { print(snapshot.value) }
有了这个我得到了用户的整个字典,但我有一个问题抓住了UID。
snapshot.key给我“用户”。
在用户名/电子邮件中find用户字典后,如何从字典中获取UID值?
当您针对Firebase数据库执行查询时,可能会有多个结果。 所以快照包含了这些结果的列表。 即使只有一个结果,快照也将包含一个结果列表。
let query = REF_USERS.queryOrdered(byChild: "displayname").queryEqual(toValue: input) query.observeSingleEvent(of: .value) { (snapshot: FIRDataSnapshot) in { for child in snapshot.children { print(child.key) } }
另请参阅:
- Firebase snapshot.key不能返回实际的密钥?
- queryOrderBy中的Firebase访问键
- queryOrderBy中的Firebase访问键
- Firebase正在获取数据
尝试这个…
假设一个结构
users uid_0 email: "someuser@thing.com" displayName: "some display name"
我们想要得到uid_0的信息
let input = "uid_0" usersRef.queryOrdered(byChild: "displayName").queryEqual(toValue: input) .observeSingleEvent(of: .value) { (snapshot: FIRDataSnapshot) in { let dict = snapshot?.value as! [String: AnyObject] let email = dict["email"] let displayName = dict["displayName"] print(email!) print(displayName!) let key = snapshot?.key print(key!) }
一些事情要注意
“dict”variables被告知被分配了一个types为[String:Anyobject]的字典。
任何对象都可以,是任何对象。 一个string,另一个字典,一个int。 所以你需要确保你的代码可以处理任何对象
这种情况下的快照键是该用户的快照,键必须是父节点,在这种情况下是uid_0。 所以输出是
someuser@thing.com some display name uid_0
- 直接访问CGRect值与在Swift-Objective-C规则中规范化仍然有效?
- 我怎样才能格式化stringalignment
- 谷歌地图方向API返回零结果Swift
- .reloadData()致命错误:意外地发现零,而解包一个可选值
- 可以在iOS 7和iOS 8上运行的警报
- 在Swift 2中使用'kGMSMarkerAnimationPop'错误
- 如何在Swift中使用Objective-C代码和#definemacros
- 收到错误:Error Domain = com.facebook.sdk.core Code = 8“(null)”
- 无法使用types为“(NSMutableURLRequest,(_,_,_)throws – > _”)的参数列表调用“dataTaskWithRequest”