Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

282
Views
¿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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!