javascript - register - ¿Cómo agregar un nombre de usuario con correo electrónico y contraseña en Firebase?
register with email and password firebase (2)
Estoy usando Firebase y estoy tratando de agregar un nombre de usuario a la base de datos con el correo electrónico y la contraseña.
¿Hay alguna manera de hacerlo o la función createUserWithEmailAndPassword()
solo funciona para correo electrónico y contraseña?
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);
});
});
La solución que encontré para agregar un nombre de usuario con la función 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.");
}
});
Esto no se puede hacer a través de createUserWithEmailAndPassword()
pero hay un método de base de fuego para esto. Deberá escuchar cuando se cambie el estado de autenticación , obtener al usuario y luego actualizar la información del perfil . Vea abajo
Este código vendría después de 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.
});
}
});
Como se indica en Firebase User Api aquí: https://firebase.google.com/docs/reference/js/firebase.User#updateProfile
Espero que esto ayude
Necesita crear ese nodo hijo de los users
base de datos usted mismo ;-)
La función createUserWithEmailAndPassword
solo crea un nuevo usuario en el servicio de autenticación de Firebase. La base de datos en sí no cambia en absoluto como resultado.
Para agregar este nuevo usuario a la base de datos, intente:
firebase.database().ref("users").child(user.uid).set(...)