with usuario register recordar password eliminar current contraseña and javascript firebase firebase-database firebase-authentication

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(...)