Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

152
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda