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

153
Vistas
¿Por qué sigo recibiendo un retorno indefinido aquí?

Estoy tratando de obtener el valor de mi Firestore DB Async Function cvUpload . Pero no importa cuánto tiempo espere el valor, aún no está definido si lo llamo en mi componente.

Veo que muchos tienen los mismos problemas con async await y promises. Pero realmente no puedo resolverlo. Realmente necesito algunos consejos aquí.

DatabaseService.ts

 export class DatabaseService { constructor( private dbService : DatabaseService ) {} async cvUpload (id : string) { const userRef = collection(this.db, this.user_db) const q = query(userRef, where("id", "==", id)); const querySnapshot = await getDocs(q); querySnapshot.forEach((doc) => { console.log(doc.data().cv) /// False (Thats correct) return doc.data().cv; }); }

DashboardComponent.ts

 constructor( private dbService : DatabaseService ) { } async ngOnInit() { await this.checkCV('uyDer0BxoVekGU2XnYa3Xm77nm03') } async checkCV(id : any) { let result = await this.dbService.cvUpload(id) /// This shoud return FALSE }

Estoy agradecido por cualquier ayuda o consejo que me lleve más lejos aquí

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

0

En primer lugar, aquí:

 querySnapshot.forEach((doc) => { console.log(doc.data().cv) /// False (Thats correct) return doc.data().cv; ...

Estás haciendo un forEach ... Supongo que estás esperando recibir solo 1 elemento... Pero si no, ten cuidado porque solo tratarías el primer elemento...

De todos modos, suponiendo que solo tendrá un elemento allí:

Probablemente tenga un problema con el valor de retorno "falso"... ¿Podría tratar de tratar todo esto con un objeto, para verificar si todavía sucede?

Algo como esto:

DatabaseService.ts

 querySnapshot.forEach((doc) => { console.log(doc.data().cv) /// False (Thats correct) const result: {result: boolean}; result = { result: doc?.data()?.cv ?? false, }; return result; });

DashboardComponent.ts

 async checkCV(id : any) { const {result} = await this.dbService.cvUpload(id) /// This shoud return FALSE }
about 4 years ago · Juan Pablo Isaza Denunciar

0

el error real radica en el método cvUpload. En realidad, no está devolviendo nada de la función cvUpload. Devolver algo dentro de Array.forEach() no cuenta como valor de retorno de cvUpload.

Tal vez deberías regresar

 async cvUpload(id: string) { const userRef = collection(this.db, this.user_db) const q = query(userRef, where("id", "==", id)); const querySnapshot = await getDocs(q); return querySnapshot.docs[0].data().cv; };
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