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

Dan*_*nko 6 ios firebase swift

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

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

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

let userID = FIRAuth.auth()?.currentUser?.uid
Run Code Online (Sandbox Code Playgroud)

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

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

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

})
Run Code Online (Sandbox Code Playgroud)

}

在我的输出中我有这个:

 "-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;
Run Code Online (Sandbox Code Playgroud)

等等

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

授权用户存储在用户数据库中。配置文件数据库包含我从 Facebook 获取的用户参数。

Jay*_*Jay 3

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

uid_0
  gender: male
  name: Leroy
uid_1
  gender: female?
  name: pat
Run Code Online (Sandbox Code Playgroud)

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

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

let thisUserRef = usersRef.childByAppendingPath("the uid")

thisUserRef.observeSingleEventOfType(.Value... {
    let gender = snapshot.value["gender"]
}
Run Code Online (Sandbox Code Playgroud)