如何在Firebase Swift 3中获取用户特定数据

时间:2017-10-15 18:54:06

标签: firebase swift3 firebase-realtime-database

我想检索应用程序中当前用户的数据。我怎样才能做到这一点。 ?

这是我当前用户的firebase id:

enter image description here

我的表节点是:

enter image description here

很明显,我的uid和节点标题不同。那么我怎样才能获得特定用户的数据。

我的代码到现在为止:

self.ref =  Database.database().reference()
let userID = Auth.auth().currentUser?.uid
self.ref.child("member").child(userID!).observeSingleEvent(of: .value, with: { (snapshot) in
 if !snapshot.exists() {
                    // handle data not found
                    return
 }
})

2 个答案:

答案 0 :(得分:1)

您获得了不同的ID,因为第一个Wnlxl...userID而另一个-KVvR664...autoID。 您已在.childByAutoID后面设置member,如果您想要检索当前用户的数据,则必须在userID之后添加member。 然后,您可以通过userID轻松检索用户的数据,因为每个细节都会保存在userID下。
希望这段代码能为你效劳。

let ref : FIRDatabaseReference!
ref = FIRDatabase.database().reference()    
ref.child("member").child(user!.uid).setValue(["name": self.fullName.text!, "email": self.email.text!, "mobile": self.mobile.text!, "doj": self.doj.text!])

答案 1 :(得分:0)

您的Firebase屏幕截图不正确我认为 - 您的代码可以正常运行,但您创建这些成员的方式是错误的。

创建成员时,您说"App1 OK" "App2 OK" 应该使用.childByAutoID。如果这是有道理的。让我知道。

编辑:要在节点成员中创建具有userUID数据的用户,请执行以下操作:

Auth.auth().currentUser?.uid