Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

276
Vistas
¿Cómo actualizar correctamente el correo electrónico y los datos confidenciales en Firebase?

Tengo un código donde el usuario puede actualizar sus credenciales/información personal, sin embargo, encontré un problema y logré solucionarlo, decía que el primer argumento tenía que ser una cadena y encontré una solución, sin embargo, luego recibí un error que decía "Esta operación es confidencial y requiere autenticación reciente. Vuelva a iniciar sesión antes de volver a intentarlo...

ingrese la descripción de la imagen aquí

Luego encontré en algunos de los comentarios donde encontré mi primera solución lo siguiente: user.reauthenticateWithCredential(auth.EmailAuthProvider.credential(user.email, user.password)).then(() => user.updateEmail(email)) Intenté usar esto, pero no funciona. Obtuve otro error después y quería saber si estaba desactualizado o si lo estaba haciendo mal.

ingrese la descripción de la imagen aquí

Código

Obtengo mi autenticación de mi firebase.js

 const db = firebase.firestore(); const auth = firebase.auth(); const storage = firebase.storage();

Obtengo mi usuario de mi App.js y luego, si lo necesito, lo envío así:

 function App() { const [user, setUser] = useState([]); useEffect(() => { auth.onAuthStateChanged((authUser) => { if (authUser) { setUser(authUser); } else { setUser(false); } }) }, []) return ( .... <Route path = "/Update_Profile"> <Inicio user={user}/> <UpdateProfile user={user}/> </Route> ... )} export default App;
 const updateEmail = (e) => { e.preventDefault(); if (user && (email != "")) { user.reauthenticateWithCredential(auth.EmailAuthProvider.credential(user.email, user.password)) .then(() => user.updateEmail(email)) const ref = db.collection("usuarios").doc(user.uid) ref.update({ email: email }) } else { //User is not logged in, handle that case here } }
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Debido a que auth es una instancia del módulo Auth y no el espacio de nombres del módulo Auth del SDK web de Firebase (porque usó const auth = firebase.auth() ), el siguiente valor no está undefined :

 auth.EmailAuthProvider

Esto se debe a que la clase firebase.auth.Auth no define una propiedad EmailAuthProvider . Esto significa que JavaScript intenta llamar a undefined.credential(...) y arroja un error.

Para acceder a la clase EmailAuthProvider , debe acceder directamente desde el espacio de nombres firebase.auth :

 firebase.auth.EmailAuthProvider

En breve,

 firebase.auth !== firebase.auth()
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda