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

问题描述:

我想检索应用程序中当前用户的数据。我怎样才能做到这一点。 ?
如何在Firebase中获取用户特定数据Swift 3

这里是我当前用户的火力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 
} 
}) 

你得到不同的ID,因为第一个Wnlxl...userID和其他-KVvR664...autoID
您在member之后设置了.childByAutoID,如果您想要检索当前用户的数据,则必须将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!]) 
+0

我不想设定值,但获取当前用户 – vickydutta

+0

您已设置'的细节.childByAutoID'在'member'后面,如果你想在'UserID'下保存细节,那么你必须在'member'后面加上'userID'。 –

+0

@vickydutta更新了答案 –

你的火力地堡截图不正确,我想 - 你的代码将正常工作,但你如何创建这些成员是错误的。

创建成员时,您应该使用.childByAutoIDAuth.auth().currentUser?.uid。如果这是有道理的。让我知道。

编辑:在节点成员创建具有userUID数据的用户做到以下几点:

if let userUID = Auth().auth.currentUser?.uid{ 
    ref.child("members/\(userUID)").setValue(*YOURMEMBERINFODICTIONARY*) 
} 
+0

你能提供这个代码 – vickydutta

+0

没有找到你? – vickydutta

+0

您发布的屏幕截图。发布创建会员的Firebase电话,我可以解释。 – Torewin