我一直在组建一个网站,我一直在使用最新的firebase脚本和所有内容。 当我请求创建自定义用户属性时,它会说它未定义'。
CustomAttributes:
点
ownedavatars
代码:
注册
var user = firebase.auth().currentUser;
user.updateProfile({
displayName: //username,
photoURL: //icon,
points: 0,
ownedavatars: "default"
}).then(function() {
user.sendEmailVerification().then(function() {
//it would save email and password and then redirect here
}).catch(function(error) {
console.log(error.message);
});
}).catch(function(error) {
console.log(error.message);
});
登录
var listofavatars;
firebase.auth().signInWithEmailAndPassword(email, password).then(function() {
var user = firebase.auth().currentUser;
if (user != null) {
document.getElementById("user").innerHTML = user.displayName;
if (user.points == undefined) {
document.getElementById("points").innerHTML = "0p";
} else {
document.getElementById("points").innerHTML = user.points + "p";
}
listofavatars = user.ownedavatars;
if (user.photoURL == "default") {
document.getElementById("avatar").src = //would pull default;
} else {
document.getElementById("avatar").src = //would pull any other icon saved;
}
}
}).catch(function(error) {
alert(error.message + " Code:" + error.code);
});
答案 0 :(得分:0)
您无法使用updateProfile
来保存任意自定义用户变量。此API目前仅支持photoURL
和displayName`。要保存其他用户数据,必须使用单独的数据库来执行此操作。您可以使用Firebase实时数据库或Firestore来执行此操作。以下是如何安全保存用户特定数据的示例:https://firebase.google.com/docs/database/security/user-security
如果您需要为基于角色的访问控制保存用户特定数据,则可以使用Firebase Admin SDK设置自定义用户属性: https://firebase.google.com/docs/auth/admin/custom-claims
但是,强烈建议将此自定义用户数据用于访问控制。对于其他数据,请使用如上所述的专用数据库。