Estoy recopilando nombre, correo electrónico, teléfono y contraseña cuando un usuario se registra. En el enlace useFirebase, estoy actualizando displayName usando el método updateProfile de firebase.
Esta función se utiliza para crear usuarios.
const userCreate = (name, email, password, phone, history) => { createUserWithEmailAndPassword(auth, email, password) .then((userCredential) => { //User Create after registration const newUser = { email, displayName: name, phoneNumber:phone }; const uid = auth.currentUser.uid verifyEmail(); updateProfile(auth.currentUser, { displayName: name, phoneNumber:phone, }) .then(() => { console.log() }) .catch((error) => { }); history.replace('/'); }) .catch((error) => { console.log(error) }) }Después de registrarse, el displayName se actualiza. Pero no me sale el número de teléfono. ¿Cómo puedo hacer eso?
De la documentación sobre la actualización del perfil de un usuario :
Puede actualizar la información básica del perfil de un usuario (el nombre para mostrar del usuario y la URL de la foto de perfil) con el método
updateProfile.
Por lo tanto, no hay forma de actualizar el número de teléfono del usuario con esta función. La razón de esto es que el número de teléfono es parte de las credenciales de inicio de sesión de un usuario, por lo que debe actualizarse a través de un método dedicado (similar a su contraseña y correo electrónico).
Para actualizar el número de teléfono de un usuario, llame a la función updatePhoneNumber como se muestra aquí :
// 'recaptcha-container' is the ID of an element in the DOM. const applicationVerifier = new RecaptchaVerifier('recaptcha-container'); const provider = new PhoneAuthProvider(auth); const verificationId = await provider.verifyPhoneNumber('+16505550101', applicationVerifier); // Obtain the verificationCode from the user. const phoneCredential = PhoneAuthProvider.credential(verificationId, verificationCode); await updatePhoneNumber(user, phoneCredential);