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

344
Views
Firebase Auth con Facebook falla si la cuenta ya existe y está asociada con Google Auth

Implementé una aplicación simple que contiene 2 botones: 1 para iniciar sesión a través de Google y el otro a través de Facebook.

Ambos métodos de autenticación funcionan individualmente, pero las cosas se complican más cuando:

  • el usuario tiene una dirección de gmail y primero se autentica usando el servicio de inicio de sesión de Google
  • luego, regresa e intenta iniciar sesión utilizando el servicio de inicio de sesión de Facebook.

Aquí viene el código de error auth/account-exists-with-different-credential que ya se ha mencionado aquí en stackoverflow Firebase JS API auth - account-exists-with- different-credential

El problema es que el objeto de error que recibo no contiene un nombre de propiedad de credential (ni un nombre de propiedad de email por cierto) en la pequeña aplicación que he creado.

Extracto de loginWithFacebook.js en la aplicación

 export async function loginWithFacebook() { signInWithPopup(auth, new FacebookAuthProvider()) .then((result) => { const user = result.user; console.log(user); }) .catch(function (error) { if (error.code === 'auth/account-exists-with-different-credential') { console.log(error.credential); // undefined console.log(error.email); // undefined } }); }

enlace a la aplicación de prueba

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Tuve el mismo problema y pude solucionarlo investigando la propiedad customData del error devuelto. Probablemente este comportamiento diferente tenga que ver con la versión específica de Firebase. El mío es firebase@9.6.9.

Entonces, prueba a ver si esto funciona:

 export async function loginWithFacebook() { signInWithPopup(auth, new FacebookAuthProvider()) .then((result) => { const user = result.user; console.log(user); }) .catch(function (error) { if (error.code === 'auth/account-exists-with-different-credential') { console.log(FacebookAuthProvider.credentialFromError(error)); console.log(error.customData.email); } });

}

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!