Home
Forums
New posts
Search forums
What's new
New posts
Latest activity
Log in
Register
What's new
Search
Search
Search titles only
By:
New posts
Search forums
Menu
Log in
Register
Install the app
Install
Home
Forums
All Topics
Programming/Internet
Encontrar el Uid del firebase/autentication para eliminar
JavaScript is disabled. For a better experience, please enable JavaScript in your browser before proceeding.
You are using an out of date browser. It may not display this or other websites correctly.
You should upgrade or use an
alternative browser
.
Reply to thread
Message
<blockquote data-quote="Whiplash" data-source="post: 647701"><p>hola buenas a todos/as quisiera que me ayudasen a encontrar una solucion o una variante a la problematica que tengo. el problema es el siguiente: tengo un proyecto en angular ionic, la cual quiero realizar un gestor de usuarios y actualmente tengo lo que seria el registro de ususarios y listado de estos, pero al momento de realizar el eliminar usuario del firebase, no me deja eliminar porque en la consola me dice que no se a encontrado el usuario por el UID de este, pero he estado analizando el codigo que segun yo esta bien y no se me ocurre otra solucion aqui le dejo la informacion de los codigos</p><p></p><p>authService (servicio para gestion de las cuentas):</p><p></p><p>[CODE]**import { Injectable } from '@angular/core';</p><p>import { AngularFireAuth } from '@angular/fire/compat/auth';</p><p>import { AngularFirestore } from '@angular/fire/compat/firestore';</p><p>import { Empleado, Usuario } from './modelUser';</p><p>import { Router } from '@angular/router';</p><p>@Injectable({</p><p> providedIn: 'root'</p><p>})</p><p>export class AuthService {</p><p> constructor(</p><p> private afAuth: AngularFireAuth,</p><p> private firestore: AngularFirestore,</p><p> private router: Router</p><p> ) { }</p><p> async registrar(usuario: Usuario) {</p><p> try {</p><p> const credential = await this.afAuth.createUserWithEmailAndPassword(usuario.correo, usuario.password);</p><p> const uid = credential.user?.uid;</p><p> if (uid) {</p><p> await this.firestore.collection('Usuarios').doc(uid).set(usuario);</p><p> } else {</p><p> throw new Error('No se pudo obtener el UID del usuario.');</p><p> }</p><p> } catch (error: any) {</p><p> throw new Error('Error al registrar usuario: ' + error.message);</p><p> }</p><p> }</p><p> async registrarByAdmin(empleado: Empleado) {</p><p> try {</p><p> const credential = await this.afAuth.createUserWithEmailAndPassword(empleado.correo, empleado.password);</p><p> const uid = credential.user?.uid;</p><p> if (uid) {</p><p> await this.firestore.collection('Empleados').doc(uid).set(empleado);</p><p> } else {</p><p> throw new Error('No se pudo obtener el UID del empleado.');</p><p> }</p><p> } catch (error: any) {</p><p> throw new Error('Error al registrar empleado: ' + error.message);</p><p> }</p><p> }</p><p> async getEmpleados(): Promise<Empleado[]> {</p><p> try {</p><p> const snapshot = await this.firestore.collection('Empleados').get().toPromise();</p><p> if (snapshot) {</p><p> return snapshot.docs.map(doc => doc.data() as Empleado);</p><p> } else {</p><p> throw new Error('No se encontraron documentos en la colección Empleados.');</p><p> }</p><p> } catch (error: any) {</p><p> throw new Error('Error al obtener la lista de empleados: ' + error.message);</p><p> }</p><p> }</p><p> async ingresar(email: string, password: string) {</p><p> try {</p><p> await this.afAuth.signInWithEmailAndPassword(email, password);</p><p> this.router.navigate(['/perfil']);</p><p> } catch (error: any) {</p><p> console.error('Error al iniciar sesión:', error);</p><p> throw new Error('Error al iniciar sesión: ' + error.message);</p><p> }</p><p> }</p><p> async cerrarSesion() {</p><p> try {</p><p> await this.afAuth.signOut();</p><p> this.router.navigate(['/']);</p><p> } catch (error: any) {</p><p> console.error('Error al cerrar sesión:', error);</p><p> throw new Error('Error al cerrar sesión: ' + error.message);</p><p> }</p><p> }</p><p> </p><p> modificarUsuario() {</p><p> }</p><p> async eliminarUsuario(uid: string): Promise<void> {</p><p> try {</p><p> const user = await this.afAuth.currentUser;</p><p> if (user) {</p><p> await user.delete();</p><p> } else {</p><p> throw new Error('No se encontró el usuario para eliminar.');</p><p> }</p><p> await this.firestore.collection('Usuarios').doc(uid).delete();</p><p> this.router.navigate(['/']);</p><p> } catch (error: any) {</p><p> console.error('Error al eliminar usuario:', error);</p><p> throw new Error('Error al eliminar usuario: ' + error.message);</p><p> }</p><p> }</p><p> </p><p> </p><p> async getUid(){</p><p> const user = await this.afAuth.currentUser;</p><p> if (user === null){</p><p> return null;</p><p> } else {</p><p> return user?.uid;</p><p> }</p><p> }</p><p> getCurrentUser() {</p><p> return this.afAuth.currentUser.then(user => {</p><p> if (user !== null) {</p><p> return user;</p><p> } else {</p><p> return null;</p><p> }</p><p> }).catch(error => {</p><p> console.error('Error al obtener el usuario actual:', error);</p><p> throw new Error('Error al obtener el usuario actual: ' + error.message);</p><p> });</p><p> }</p><p> // selecciona al usuario unico</p><p> async getUsuarioID(uid: string): Promise<Usuario> {</p><p> try {</p><p> const docRef = this.firestore.collection('Usuarios').doc(uid);</p><p> const doc = await docRef.get().toPromise();</p><p> if (doc && doc.exists) {</p><p> return doc.data() as Usuario;</p><p> } else {</p><p> throw new Error('No se encontró la información del usuario.');</p><p> }</p><p> } catch (error: any) {</p><p> throw new Error('Error al obtener la información del usuario: ' + error.message);</p><p> }</p><p> }</p><p> // muestra a todos los usuarios en una lista</p><p> async getUsuarios(): Promise<Usuario[]> {</p><p> try {</p><p> const snapshot = await this.firestore.collection('Usuarios').get().toPromise();</p><p> if (snapshot) {</p><p> return snapshot.docs.map(doc => doc.data() as Usuario);</p><p> } else {</p><p> throw new Error('No se encontraron documentos en la colección Usuarios.');</p><p> }</p><p> } catch (error: any) {</p><p> throw new Error('Error al obtener la lista de usuarios: ' + error.message);</p><p> }</p><p> }</p><p> </p><p> stateAuth(){</p><p> return this.afAuth.authState;</p><p> } </p><p>}**</p><p>[/CODE]</p><p></p><p>codigo del gestor de usuario y funcion de listado y eliminacion del usuario:</p><p></p><p>**</p><p></p><p>[CODE]import { Component, OnInit } from '@angular/core';</p><p>import { Router } from '@angular/router';</p><p>import { ToastController } from '@ionic/angular';</p><p>import { AuthService } from 'src/app/models-srvcs/auth.service';</p><p>import { CacheService } from 'src/app/models-srvcs/cache.service';</p><p>import { Usuario } from 'src/app/models-srvcs/modelUser';</p><p>@Component({</p><p> selector: 'app-gestioncli',</p><p> templateUrl: './gestioncli.component.html',</p><p> styleUrls: ['./gestioncli.component.scss'],</p><p>})</p><p>export class GestioncliComponent implements OnInit {</p><p> usuarios: Usuario[] = [];</p><p> constructor(</p><p> private authService: AuthService,</p><p> private toastController: ToastController,</p><p> private router: Router,</p><p> private cacheService: CacheService</p><p> ) {}</p><p> ngOnInit() {</p><p> this.getUsuarios();</p><p> }</p><p> navigateToPage(page: string) {</p><p> this.router.navigate([page]);</p><p> }</p><p> async getUsuarios() {</p><p> try {</p><p> this.usuarios = this.cacheService.getUsuarios();</p><p> if (this.usuarios.length === 0) {</p><p> this.usuarios = await this.authService.getUsuarios();</p><p> this.cacheService.setUsuarios(this.usuarios);</p><p> }</p><p> } catch (error) {</p><p> console.error('Error al obtener usuarios:', error);</p><p> }</p><p> }</p><p> async eliminarCli(uid: string) {</p><p> try {</p><p> await this.authService.eliminarUsuario(uid);</p><p> await this.mostrarMensaje('Cliente eliminado exitosamente.');</p><p> await this.getUsuarios();</p><p> } catch (error) {</p><p> console.error('Error al eliminar cliente:', error);</p><p> await this.mostrarMensaje('Error al eliminar cliente.');</p><p> }</p><p> }</p><p> modificarCli(){</p><p> </p><p> }</p><p> async mostrarMensaje(mensaje: string) {</p><p> const toast = await this.toastController.create({</p><p> message: mensaje,</p><p> duration: 2000,</p><p> position: 'top',</p><p> });</p><p> toast.present();</p><p> }</p><p>}</p><p>[/CODE]</p><p></p><p>**</p><p></p><p>aquí les dejo la información de la acción de eliminar: <a href="https://i.stack.imgur.com/I8I9T.png"><img src="https://i.stack.imgur.com/I8I9T.png" alt="no se encontró usuario para eliminar" class="fr-fic fr-dii fr-draggable " style="" /></a></p><p></p><p><a href="https://i.stack.imgur.com/gUPFm.png"><img src="https://i.stack.imgur.com/gUPFm.png" alt="mas cerca" class="fr-fic fr-dii fr-draggable " style="" /></a></p></blockquote><p></p>
[QUOTE="Whiplash, post: 647701"] hola buenas a todos/as quisiera que me ayudasen a encontrar una solucion o una variante a la problematica que tengo. el problema es el siguiente: tengo un proyecto en angular ionic, la cual quiero realizar un gestor de usuarios y actualmente tengo lo que seria el registro de ususarios y listado de estos, pero al momento de realizar el eliminar usuario del firebase, no me deja eliminar porque en la consola me dice que no se a encontrado el usuario por el UID de este, pero he estado analizando el codigo que segun yo esta bien y no se me ocurre otra solucion aqui le dejo la informacion de los codigos authService (servicio para gestion de las cuentas): [CODE]**import { Injectable } from '@angular/core'; import { AngularFireAuth } from '@angular/fire/compat/auth'; import { AngularFirestore } from '@angular/fire/compat/firestore'; import { Empleado, Usuario } from './modelUser'; import { Router } from '@angular/router'; @Injectable({ providedIn: 'root' }) export class AuthService { constructor( private afAuth: AngularFireAuth, private firestore: AngularFirestore, private router: Router ) { } async registrar(usuario: Usuario) { try { const credential = await this.afAuth.createUserWithEmailAndPassword(usuario.correo, usuario.password); const uid = credential.user?.uid; if (uid) { await this.firestore.collection('Usuarios').doc(uid).set(usuario); } else { throw new Error('No se pudo obtener el UID del usuario.'); } } catch (error: any) { throw new Error('Error al registrar usuario: ' + error.message); } } async registrarByAdmin(empleado: Empleado) { try { const credential = await this.afAuth.createUserWithEmailAndPassword(empleado.correo, empleado.password); const uid = credential.user?.uid; if (uid) { await this.firestore.collection('Empleados').doc(uid).set(empleado); } else { throw new Error('No se pudo obtener el UID del empleado.'); } } catch (error: any) { throw new Error('Error al registrar empleado: ' + error.message); } } async getEmpleados(): Promise<Empleado[]> { try { const snapshot = await this.firestore.collection('Empleados').get().toPromise(); if (snapshot) { return snapshot.docs.map(doc => doc.data() as Empleado); } else { throw new Error('No se encontraron documentos en la colección Empleados.'); } } catch (error: any) { throw new Error('Error al obtener la lista de empleados: ' + error.message); } } async ingresar(email: string, password: string) { try { await this.afAuth.signInWithEmailAndPassword(email, password); this.router.navigate(['/perfil']); } catch (error: any) { console.error('Error al iniciar sesión:', error); throw new Error('Error al iniciar sesión: ' + error.message); } } async cerrarSesion() { try { await this.afAuth.signOut(); this.router.navigate(['/']); } catch (error: any) { console.error('Error al cerrar sesión:', error); throw new Error('Error al cerrar sesión: ' + error.message); } } modificarUsuario() { } async eliminarUsuario(uid: string): Promise<void> { try { const user = await this.afAuth.currentUser; if (user) { await user.delete(); } else { throw new Error('No se encontró el usuario para eliminar.'); } await this.firestore.collection('Usuarios').doc(uid).delete(); this.router.navigate(['/']); } catch (error: any) { console.error('Error al eliminar usuario:', error); throw new Error('Error al eliminar usuario: ' + error.message); } } async getUid(){ const user = await this.afAuth.currentUser; if (user === null){ return null; } else { return user?.uid; } } getCurrentUser() { return this.afAuth.currentUser.then(user => { if (user !== null) { return user; } else { return null; } }).catch(error => { console.error('Error al obtener el usuario actual:', error); throw new Error('Error al obtener el usuario actual: ' + error.message); }); } // selecciona al usuario unico async getUsuarioID(uid: string): Promise<Usuario> { try { const docRef = this.firestore.collection('Usuarios').doc(uid); const doc = await docRef.get().toPromise(); if (doc && doc.exists) { return doc.data() as Usuario; } else { throw new Error('No se encontró la información del usuario.'); } } catch (error: any) { throw new Error('Error al obtener la información del usuario: ' + error.message); } } // muestra a todos los usuarios en una lista async getUsuarios(): Promise<Usuario[]> { try { const snapshot = await this.firestore.collection('Usuarios').get().toPromise(); if (snapshot) { return snapshot.docs.map(doc => doc.data() as Usuario); } else { throw new Error('No se encontraron documentos en la colección Usuarios.'); } } catch (error: any) { throw new Error('Error al obtener la lista de usuarios: ' + error.message); } } stateAuth(){ return this.afAuth.authState; } }** [/CODE] codigo del gestor de usuario y funcion de listado y eliminacion del usuario: ** [CODE]import { Component, OnInit } from '@angular/core'; import { Router } from '@angular/router'; import { ToastController } from '@ionic/angular'; import { AuthService } from 'src/app/models-srvcs/auth.service'; import { CacheService } from 'src/app/models-srvcs/cache.service'; import { Usuario } from 'src/app/models-srvcs/modelUser'; @Component({ selector: 'app-gestioncli', templateUrl: './gestioncli.component.html', styleUrls: ['./gestioncli.component.scss'], }) export class GestioncliComponent implements OnInit { usuarios: Usuario[] = []; constructor( private authService: AuthService, private toastController: ToastController, private router: Router, private cacheService: CacheService ) {} ngOnInit() { this.getUsuarios(); } navigateToPage(page: string) { this.router.navigate([page]); } async getUsuarios() { try { this.usuarios = this.cacheService.getUsuarios(); if (this.usuarios.length === 0) { this.usuarios = await this.authService.getUsuarios(); this.cacheService.setUsuarios(this.usuarios); } } catch (error) { console.error('Error al obtener usuarios:', error); } } async eliminarCli(uid: string) { try { await this.authService.eliminarUsuario(uid); await this.mostrarMensaje('Cliente eliminado exitosamente.'); await this.getUsuarios(); } catch (error) { console.error('Error al eliminar cliente:', error); await this.mostrarMensaje('Error al eliminar cliente.'); } } modificarCli(){ } async mostrarMensaje(mensaje: string) { const toast = await this.toastController.create({ message: mensaje, duration: 2000, position: 'top', }); toast.present(); } } [/CODE] ** aquí les dejo la información de la acción de eliminar: [URL='https://i.stack.imgur.com/I8I9T.png'][IMG alt="no se encontró usuario para eliminar"]https://i.stack.imgur.com/I8I9T.png[/IMG][/URL] [URL='https://i.stack.imgur.com/gUPFm.png'][IMG alt="mas cerca"]https://i.stack.imgur.com/gUPFm.png[/IMG][/URL] [/QUOTE]
Name
Verification
Post reply
Home
Forums
All Topics
Programming/Internet
Encontrar el Uid del firebase/autentication para eliminar
This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
By continuing to use this site, you are consenting to our use of cookies.
Accept
Learn more…
Top