【问题标题】:How to retrieve data of current user from firebase如何从firebase检索当前用户的数据
【发布时间】:2016-06-04 21:48:33
【问题描述】:

我正在开发一个简单的应用程序来存储用户图像。用户通过 Facebook 授权,并与应用程序交互。 我坚持从当前用户那里检索数据。

目前在我的火力基地中,我有这样的结构:

我决定通过 uid 获取用户数据。 所以我初始化了变量

let userID = FIRAuth.auth()?.currentUser?.uid

然后我从我的数据库中检索一个对象数组

URL_BASE.child("profile").observeEventType(.Value, withBlock: { (snapshot) in

    print (snapshot.value as! [String:AnyObject]!)

})

}

在我的输出中我有这个:

 "-KJSKE4a2y-okl71vDSx": {
    Interest = men;
    gender = female;
    name = girlsname1;
    photo = "http://i.imgur.com/VAWlQ0S.gif";
    surname = girlsurname1;
}, "-KJSKE4b8TlvxV-urHQo": {
    Interest = men;
    gender = female;
    name = girlsname6;
    photo = "http://media.tumblr.com/tumblr_lnb9aozmM71qbxrlp.gif";
    surname = girlsurname6;

等等

没关系,但我的目标是打印当前授权用户的数据。我有一个按 uid 对所有对象进行排序的想法,但我认为这是不合理的。希望有更简单的解决方案。

授权用户存储在用户数据库中。个人资料数据库包含我从 Facebook 获取的用户参数。

【问题讨论】:

    标签: ios swift firebase


    【解决方案1】:
        let userID : String = (FIRAuth.auth()?.currentUser?.uid)!
        print("Current user ID is" + userID)
    
       self.dbRef?.child("profile").child(userID).observeSingleEvent(of: .value, with: {(snapshot) in
            print(snapshot.value)
    
            let userEmail = (snapshot.value as! NSDictionary)["addedByUser"] as! String
            print(userEmail)
    
    
        })
    

    【讨论】:

    • 试试这个,对我有帮助
    • 请解释你的答案!
    • 将您的数据库子项更改为用户 uid,它将起作用
    • 让 userID: String = user!.uid 。 self.dbRef?.child(userID)
    【解决方案2】:

    如您所知,在 Firebase 中,所有用户都有一个 uid。 uid 应该用作 /users 中每个用户节点的键。

    uid_0
      gender: male
      name: Leroy
    uid_1
      gender: female?
      name: pat
    

    这是 Firebase 中常见的设计模式。

    这样,您可以简单地通过他们的 uid 获取任何用户

    let thisUserRef = usersRef.childByAppendingPath("the uid")
    
    thisUserRef.observeSingleEventOfType(.Value... {
        let gender = snapshot.value["gender"]
    }
    

    【讨论】:

    • 我也是这样做的,但每次我得到 nil 时,当我想获取性别数据时
    • @DanielChepenko 不管你读什么,你总是得到零吗?我使用 usersRef.childByAppendingPath("uid_0") 测试了我的答案中的代码,它工作正常并打印了性别。请记住,我的结构与您的不同;最好使用 uid 作为用户节点的键;您的结构正在使用 childByAutoId,这在技术上可行但不推荐。
    猜你喜欢
    • 2019-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-15
    • 1970-01-01
    • 1970-01-01
    • 2021-11-19
    相关资源
    最近更新 更多