这是数据库的样子。我试图查询登录用户的信息,但我似乎无法返回包含其他子项的值,例如地址和图片。 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()
})
})
答案 0 :(得分:1)
使用.child(FIRAuth.auth()!。currentUser!.uid)而不是queryEqualToValue。