我真正想做的就是允许用户创建一个对象,只有该用户才能看到和更改它。因此,例如:我的代码与此类似:
function createAccount(email, pass){
firebase.auth().createUserWithEmailAndPassword(email,pass).catch(function(error) {
var errorCode = error.code;
var errorMessage = error.message;
console.log(errorCode+":"+errorMessage);
});
}
我还有一个函数,我称之为createAccountHome(),我希望它的结构如下:
function createAccountHome(){
firebase.database().ref().child('Profiles').push({
// user id : something to link object solely to this user
// data: data
});
}
我希望在此阶段结束时,我可以创建一个帐户,然后为用户自动生成一个配置文件,以便用户只能对他/她自己的信息进行写访问。
答案 0 :(得分:1)
最常见的方法是将用户数据保存在用户ID下。所以不使用push()而是使用set(),如下所示:
firebase.database().ref().child('Profiles').child(user.uid).set({
//data:data
})
要确保用户只能查看和编辑自己的个人资料,请使用以下安全规则:
{
"rules": {
"Profiles": {
"$uid": {
".read": "auth != null && auth.uid ==$uid",
".write": "auth != null && auth.uid ==$uid"
}
}
}
}
对于一些阅读:link to old docs解释有关存储用户数据的更多信息。