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

150
Vistas
no puedo cerrar la sesión del usuario de firebase

Estoy tratando de cerrar la sesión del usuario actualmente conectado en mi aplicación angular. Ese es mi servicio al cliente:

 export class AuthClientService { public register(email: string, password: string): Observable<Object> { return from( createUserWithEmailAndPassword(this.firebaseService.auth, email, password) ); } public logIn(email: string, password: string): Observable<Object> { return from( signInWithEmailAndPassword(this.firebaseService.auth, email, password) ); } public logOut(): Observable<void> { return from(signOut(this.firebaseService.auth)); } constructor(private firebaseService: FirebaseService) {} }

y servicio de base de fuego:

 @Injectable({ providedIn: 'root', }) export class FirebaseService { public app = initializeApp(firebaseConfig); public auth = getAuth(); }

pero cuando llamo a la función de cierre de sesión hay este error:

ERROR Error: No capturado (en promesa): TypeError: No se puede asignar a la propiedad de solo lectura 'currentUser' del objeto '[object Object]' TypeError: No se puede asignar a la propiedad de solo lectura 'currentUser' del objeto '[object Object]' en el índice- 8593558d.js:2473 en Generator.next () en asyncGeneratorStep (asyncToGenerator.js:3) en _next (asyncToGenerator.js:25) en asyncToGenerator.js:32 en la nueva ZoneAwarePromise (zone.js:1387) en asyncToGenerator.js: 21 en AuthImpl.directlySetCurrentUser (index-8593558d.js:2466) en index-8593558d.js:2329 en Generator.next () en resolvePromise (zone.js:1213) en zone.js:1120 en zone.js:1136 en ZoneDelegate.invoke (zone.js:372) en Object.onInvoke (core.js:28692) en ZoneDelegate.invoke (zone.js:371) en Zone.run (zone.js:134) en zone.js:1276 en ZoneDelegate.invokeTask (zone.js:406) en Object.onInvokeTask (core.js:28679)

La aplicación lo está llamando desde los efectos de ngrx, pero no creo que sea un problema, porque traté de llamarlo sin ngrx y todavía hay este error.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Entonces, después de investigar un poco, encontré una solución, no estoy seguro de la causa de este problema, pero esto puede ser útil para alguien. Primero moví la lógica de autenticación del usuario de los efectos ngrx al observador de autenticación de fuego angular de esta manera:

 public authObserver(): void { this.angularFireAuth.user.subscribe((user) => { if (user) { this.store.dispatch(readCredentials({ userCredential: user })); this.router.navigate(['/dashboard']); } }); }

Después de eso, me di cuenta de que la causa del error era pasar el objeto del usuario a la función de acción ngrx. Cuando creo una copia profunda del usuario del objeto y la paso para que funcione así, funciona bien.

 public authObserver(): void { this.angularFireAuth.user.subscribe((user) => { if (user) { let copy = JSON.parse(JSON.stringify(user)); this.store.dispatch(readCredentials({ userCredential: copy })); this.router.navigate(['/dashboard']); } }); }
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