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

129
Visualizações
al intentar devolver los datos de Firebase a otra página, pasa indefinido

Estoy tratando de obtener datos de Firebase, implementé casi los mismos códigos que mi aplicación nativa de reacción, pero esta vez me enfrento a algunos problemas que no pude resolver.

 import {db} from './firebase' const formatMarketData = (data) =>{ let formattedData = []; data.forEach(item=>{ const formattedItem = { ...item } formattedData.push(formattedItem); }); return formattedData; } export const FirebaseService = async (id) => { id=id.replace(/['"]+/g, ""); const historyKey="/coins/0/"+id await db.ref(historyKey) .once('value') .then(snapshot => { const data = snapshot.val(); const formattedResponse= formatMarketData(data); console.log(formattedResponse) return formattedResponse }); };

Esta función me ayuda a recuperar datos de mi firebase rtdb. Las funciones de console.log funcionan y escriben como se esperaba, pero cuando intento capturarlo en mi página de noticias, se vuelve indefinido.

 import React from 'react' import { useState,useEffect } from 'react' import { FirebaseService } from '../../Services/FirebaseService' const NewList = ({id}) => { const [data,setData] = useState([]) useEffect(()=>{ console.log(id) const fetchMarketData = async () =>{ const marketData = await FirebaseService(id); return setData(marketData); } fetchMarketData(); return () => { } },[]) return ( <div> {data!==undefined?data.map((d)=>{return(<p>{d.id}</p>)}) :<p>no data yet</p>} </div> ) } export default NewList

Me falta algo pero no puedo notarlo. Otra vista podría ser útil.

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

0

Defina formattedResponse al comienzo de la función y devuélvalo al final. He editado tu función

 import {db} from './firebase' const formatMarketData = (data) =>{ let formattedData = []; data.forEach(item=>{ const formattedItem = { ...item } formattedData.push(formattedItem); }); return formattedData; } export const FirebaseService = (id) =>{ let formattedResponse = []; id=id.replace(/['"]+/g, ""); const historyKey="/coins/0/"+id await db.ref(historyKey) .once('value') .then(snapshot => { const data = snapshot.val(); formattedResponse= formatMarketData(data); console.log(formattedResponse) }) return formattedResponse };
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