2017-10-15 102 views
0

我想檢索應用程序中當前用戶的數據。我怎樣才能做到這一點。 ?
如何在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 
} 
}) 

回答

0

你得到不同的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更新了答案 –

0

你的火力地堡截圖不正確,我想 - 你的代碼將正常工作,但你如何創建這些成員是錯誤的。

創建成員時,您應該使用.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

相關問題