【发布时间】:2016-06-19 03:17:07
【问题描述】:
这是数据库的外观。我正在尝试查询登录用户的信息,但我似乎无法返回具有其他子项的值,例如地址和图像。 firstName 和 lastName 似乎返回正常。
代码:
if FIRAuth.auth()!.currentUser != nil {
let queryRef = FIRDatabase.database().reference().child("user")
queryRef.queryEqualToValue(FIRAuth.auth()!.currentUser!.uid).observeSingleEventOfType(.Value, withBlock: { (snapshot) in
这些返回 nil
print(snapshot.value!.valueForKey("address")!.valueForKey("lineOne") as! String)
print(snapshot.value)
虽然返回一个值
print(snapshot.value!.valueForKey("firstName") as? String)
我做错了什么无法返回所有值?将 .Value 更改为 .ChildAdded 根本不会返回任何内容。
这是没有查询等于下面值的代码虽然工作正常
let queryRef = FIRDatabase.database().reference().child("user")
queryRef.observeEventType(.ChildAdded, withBlock: { (snapshot) -> Void in
self.userDict.append(snapshot.value as! NSDictionary)
dispatch_async(dispatch_get_main_queue(), { () -> Void in
self.searchTableView.reloadData()
print(self.userDict)
SwiftLoader.hide()
queryRef.removeAllObservers()
})
})
【问题讨论】:
-
你发现问题了吗?
-
是的,而不是 queryEqualToValue,因为值下面有孩子,所以它不起作用,你只是简单的 .child(FIRAuth.auth()!.currentUser!.uid)
标签: swift firebase firebase-realtime-database