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

时间:2016-06-04 21:48:33

标签: ios swift firebase

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

我现在在我的火力架中有这样的结构: enter image description here

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

 <!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <script src="assets/js/dropzone.js"></script>
    <script src="assets/js/dropzone-amd-module.js"></script>
    <link href="assets/css/dropzone.css" type="text/css" rel="stylesheet" />
    <link href="assets/css/basic.css" type="text/css" rel="stylesheet" />
    <link href="assets/css/Style.css" type="text/css" rel="stylesheet" />
</head>
<body>

    <div id="dropzone">
<form action="/file-upload" class="dropzone dz-clickable" id="demo-upload">
    <div class="dz-default">

  <div class="fallback">
    <input name="file" type="file" multiple />
  </div>
        </div>
</form>
        </div>
</body>
</html>

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

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

}

在我的输出中,我有这个:

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

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

})

等等

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

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

2 个答案:

答案 0 :(得分: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"]
}

答案 1 :(得分:2)

    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)


    })