在查询使用queryEqualToValue获取用户的信息时,我无法获取具有其他子级[Firebase] [Swift]

时间:2016-06-19 03:17:07

标签: swift firebase firebase-realtime-database

这是数据库的样子。我试图查询登录用户的信息,但我似乎无法返回包含其他子项的值,例如地址和图片。 firstName和lastName似乎返回正常。

a busy cat

代码:

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()

        })
    })

1 个答案:

答案 0 :(得分:1)

使用.child(FIRAuth.auth()!。currentUser!.uid)而不是queryEqualToValue。