Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Unhandled Rejection (TypeError): doc.data().titulo is undefined

Olá boa tarde, Estou com problemas para compilar minha aplicação por um erro que acredito que seja bobo mas não consigo enxergar. Segue o código:

function Home({ match }) {

    const [eventos, setEventos] = useState([]);
    const [pesquisa, setPesquisa] = useState('');
    let listaeventos = [];
    const usuarioEmail = useSelector(state => state.usuarioEmail);

    useEffect(() => {
        if (match.params.parametro) {
            firebase.firestore().collection('eventos').where('usuario', '==', usuarioEmail).get().then(async resultado => {
                await resultado.docs.forEach(doc => {
                    if (doc.data().titulo.indexOf(pesquisa.toLowerCase()) >= 0) {
                        listaeventos.push({
                            id: doc.id,
                            ...doc.data()
                        })
                    }
                })
                setEventos(listaeventos);
            });
        } else {
            firebase.firestore().collection('eventos').get().then(async resultado => {
                await resultado.docs.forEach(doc => {
                    if (doc.data().titulo.indexOf(pesquisa.toLowerCase()) >= 0) {
                        listaeventos.push({
                            id: doc.id,
                            ...doc.data()
                        })
                    }
                })
                setEventos(listaeventos);
            });
        }
    }, []);


    return (
        <>
            <Navbar />

            <div className="row p-3 ">
                <h2 className="mx-auto p-5">Eventos Publicados</h2>
                <input onChange={(e) => setPesquisa(e.target.value)} type="text" className="form-control text-center" placeholder="Pesquisar evento pelo título..." />
            </div>


            <div className="row p-3">
                {eventos.map(item => <EventoCard key={item.id} id={item.id} img={item.foto} titulo={item.titulo} detalhes={item.detalhes} visualizacoes={item.visualizacoes} />)}

            </div>
        </>
    )
}

export default Home;
1 resposta
solução!

Fala ai Vittorio, tudo bem? acho que não precisa desse resultado.docs você pode fazer o .forEach direto do resultado.

Espero ter ajudado.