繁体   English   中英

如何从firebase检索当前用户的数据

[英]How to retrieve data of current user from firebase

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

在我的firebase中,我现在有这样的结构: 在此输入图像描述

我决定通过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获得的用户参数。

在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"]
}
    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)


    })

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM