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

483
Visualizações
Cuando obtengo datos de Firebase y los registro, devuelve el archivo del documento, pero cuando los envío, devuelve una promesa.

He estado trabajando con firebase y tengo problemas con este código.

El objetivo del código es obtener los datos del documento con la identificación del documento.

 const getPostData = async (postId) => { const postData = await getDoc(doc(db, 'posts', postId)); console.log(postData.data()); // Returns the document data return postData.data(); } const postData = getPostData(id); console.log(postData) // Returns a promise

Estoy extremadamente confundido porque devuelvo los datos del documento que, cuando registro, me dan los datos reales del documento, pero cuando los configuro como una variable, no hacen lo mismo.

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Cuando usa una función como async , devuelve una Promise automáticamente. Así que el problema está en la lógica.

Lo que sucede:

  • Llamas a getPostData

  • Es una función async , por lo que su retorno es Promise .

  • El alcance más grande no es un alcance async , por lo que console.log se ejecuta justo después, sin esperar la ejecución de lo que está dentro de getPostData

  • console.log devuelve una Promise

Prueba algo como:

 const [postData, setPostData]= useState() const getPostData = async (postId) => { const postData = await getDoc(doc(db, 'posts', postId)); if (postData.exists()) { console.log(postData.data()); // Returns the document data setPostData(postData.data()); } else { console.log("No posts!"); } } ... getPostData(id); ... console.log(postData)
about 4 years ago · Juan Pablo Isaza Relatório

0

Dado que ha marcado getPostData como async , devuelve una Promise y no un valor inmediato.

Para obtener el valor de la promesa al llamar a getPostData , puede usar then() :

 getPostData(id).then((postData) => { console.log(postData) })

O puede usar await :

 const postData = await getPostData(id); console.log(postData)
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