我正在使用Firebase,我正在尝试使用电子邮件和密码为数据库添加用户名。
有没有办法做到这一点,或createUserWithEmailAndPassword()
仅用于电子邮件和密码吗?
signUp.addEventListener("click", function(user)
{
var username = usernameTxt.value;
var email = emailTxt.value;
var password = passwordTxt.value;
firebase.auth().createUserWithEmailAndPassword(email, password).catch(function(error)
{
// Handle Errors here.
var errorCode = error.code;
var errorMessage = error.message;
if (errorCode == 'auth/email-already-in-use')
{
alert('email-already-in-use.');
}
else
{
alert(errorMessage);
}
console.log(error);
});
});
我发现如何使用createUserWithEmailAndPassword()函数添加用户名的解决方案:
firebase.auth().onAuthStateChanged(function(user) {
var username = usernameTxt.value;
if (user) {
firebaseDataBase.ref('users/' + user.uid).set({
email: user.email,
uid : user.uid,
username: username
});
console.log("User is signed in.");
} else {
console.log("No user is signed in.");
}
});
答案 0 :(得分:6)
这不能通过createUserWithEmailAndPassword()
完成,但有一个firebase方法。 您需要先了解更改身份验证状态,获取用户,然后更新个人资料信息。见下文
此代码将在createUserWithEmailAndPassword()
firebase.auth().onAuthStateChanged(function(user) {
if (user) {
// Updates the user attributes:
user.updateProfile({ // <-- Update Method here
displayName: "NEW USER NAME",
photoURL: "https://example.com/jane-q-user/profile.jpg"
}).then(function() {
// Profile updated successfully!
// "NEW USER NAME"
var displayName = user.displayName;
// "https://example.com/jane-q-user/profile.jpg"
var photoURL = user.photoURL;
}, function(error) {
// An error happened.
});
}
});
正如firebase用户Api中所述:https://firebase.google.com/docs/reference/js/firebase.User#updateProfile
希望这有帮助
答案 1 :(得分:4)
您需要自己创建该数据库users
子节点; - )
仅createUserWithEmailAndPassword
功能 在Firebase身份验证服务中创建新用户。结果,数据库本身根本没有改变。
要将此新用户添加到数据库,请尝试:
firebase.database().ref("users").child(user.uid).set(...)
答案 2 :(得分:0)
您可以创建一个users
端点并将自定义用户数据存储在其中。
function writeUserData(userId, name, email, imageUrl) {
firebase.database().ref('users/' + userId).set({
username: name,
email: email,
profile_picture : imageUrl,
// Add more stuff here
});
}
看看https://firebase.google.com/docs/database/web/read-and-write