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

314
Vistas
Firebase Auth Multifactor: el objeto de usuario no devuelve la propiedad multiFactor

Estoy tratando de agregar MFA dentro de mi aplicación web y falta la propiedad multiFactor . Revisa el código:

 import { initializeApp } from "https://www.gstatic.com/firebasejs/9.6.2/firebase-app.js"; import { getAuth, RecaptchaVerifier, PhoneAuthProvider, signInWithEmailAndPassword } from "https://www.gstatic.com/firebasejs/9.6.2/firebase-auth.js"; const firebaseConfig = { ... }; const app = initializeApp(firebaseConfig); const auth = getAuth(app); auth.onAuthStateChanged((user) => { const userEl = document.getElementById('user'); if (user) { userEl.innerHTML = `${user.email} logged in. ${JSON.stringify( user.multiFactor.enrolledFactors )}`; } else { userEl.innerHTML = 'signed out'; } }); window.recaptchaVerifier = new RecaptchaVerifier('recaptcha-container', { 'size': 'invisible', 'callback': (response) => { console.log('captcha solved!'); } }, auth); const enrollBtn = document.getElementById('enroll-button'); enrollBtn.onclick = () => { signInWithEmailAndPassword(auth, 'blabla@gmail.com', 'foobar').then(() => { const user = auth.currentUser; if (!user) { return alert('User not logged!'); } const phoneNumber = document.getElementById('enroll-phone').value; console.log(user); user.multiFactor.getSession().then((session) => { const phoneOpts = { phoneNumber, session, }; const phoneAuthProvider = new PhoneAuthProvider(); phoneAuthProvider.verifyPhoneNumber( phoneOpts, window.recaptchaVerifier ).then((verificationId) => { window.verificationId = verificationId; alert('sms text sent!'); }); }); }); };

En el código anterior, user.multiFactor no está definido. El inicio de sesión devuelve al usuario normalmente, pero sin esta propiedad.

error en la consola: no capturado (en promesa) TypeError: no se pueden leer las propiedades de undefined (leyendo 'getSession')

El proyecto Firebase tiene MFA habilitado: ingrese la descripción de la imagen aquí

**************** ACTUALIZAR *******************

Aparentemente cambiar el código a esto funcionó:

 const mfaUser = multiFactor(user); mfaUser.getSession().then((session) => {

Pero ahora recibo este error cuando llamo a verificar número de teléfono:

 VM21778 index.html:315 TypeError: Cannot read properties of undefined (reading 'tenantId') at _addTidIfNecessary (firebase-auth.js:1934:14) at startEnrollPhoneMfa (firebase-auth.js:6778:125) at _verifyPhoneNumber (firebase-auth.js:8500:40)

Sin embargo, no estoy usando la opción Multiusuario, esto está deshabilitado en mi proyecto.

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Cambiado a:

 const mfaUser = multiFactor(user); mfaUser.getSession().then((session) => {

y:

 const phoneAuthProvider = new PhoneAuthProvider(auth);

No sé si los documentos de Firebase Auth están en desuso o si estoy haciendo algo diferente. XDD

over 4 years ago · Santiago Trujillo 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