2016-07-29 55 views
1

火力地堡控制檯只允許設置電子郵件地址和密碼,沒有任何選項來保存用戶的個人資料,但是這可以通過使用代碼來完成:Firebase - 如何永久保存用戶個人資料?

user.updateProfile({ 
    displayName: "Chinmay Sarupria" 
}).then(function() { 
    console.log(user.displayName); 
}, function(error) { 
    console.log(error); 
}); 

如果這是保存用戶數據的方式永久那麼它是不可能的爲每個用戶編寫代碼只是爲了保存他們的displayName,或者是通過代碼永久性完成,目前它正在爲我工​​作,但我不確定它是否會永遠保持這種狀態。

當然,我可以將用戶數據保存在實時數據庫中,然後根據用戶的uid獲取它,但是如果將用戶數據保存在用戶變量中是可能的,那麼這比從數據庫獲取數據要好得多。

回答

0

在引用用戶對象後,您可以在該用戶的UID下更新值。

var rootRef = new Firebase('https://yourapp.firebaseio.com'); 
// Check the current user login status and redirect if not logged in 
var user = rootRef.getAuth(); 
if (user) { 
    var user = rootRef.getAuth(); 
    var userRef = rootRef.child('users').child(user.uid); 
    ... do something with the logged in user... 
} 

function writeData() { 
    var user = rootRef.getAuth(); 
    var userRef = rootRef.child('users').child(user.uid); 
    var profileRef=userRef.child('profile').push(); 
    profileRef.update ({ 
    name: "Tony", 
    position: "Developer" 
    }); 
}; 

這應該給你的用戶輪廓的結構是這樣的:

} 
    "users" : { 
    "067f75bf-4a07-473e-82e5-d9a5ee11be17" : { 
     "profile" : { 
     "-KN2dG5X4lLpp0fwfsXK" : { 
     "name" : "Tony", 
     "position" : "Developer" 
     } 
    } 
    } 
} 

注意推()函數爲您提供了隨機產生的密鑰。你可能不需要它。

希望這會有所幫助。

+2

請不要將用戶配置文件存儲在按鍵下。除非'/ users/$ uid/profile'下的每個用戶需要多個節點,否則應該將數據存儲爲'/ users/$ uid/name','/ users/$ uid/position'等。 –

相關問題