【问题标题】:While querying to get a user's information with queryEqualToValue, I can't get the user's info that has additional child's [Firebase][Swift]在使用 queryEqualToValue 查询以获取用户信息时,我无法获取具有其他孩子的 [Firebase][Swift] 的用户信息
【发布时间】: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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-21
    • 1970-01-01
    • 1970-01-01
    • 2017-01-08
    • 2017-04-07
    • 1970-01-01
    相关资源
    最近更新 更多