entonces mi documento de firebase se ve así:
Entonces es una lista con nombre, imgUrl, etc. dentro de la lista. Mi problema en este momento con firebase cloud firestore es que solo quiero extraer todo el "nombre:" para poder contar cuántas veces aparece un nombre en particular.
Estoy recuperando los datos del documento así:
const matchLikes = async () => { await fire.firestore() .collection("eventLikes") .doc(eventID).onSnapshot((querySnapshot) => { //console.log("print indi event heree " + querySnapshot.data().eventID) setLikes(querySnapshot.data().ActivityLikes) }) y tengo la matriz en un gancho para usar, pero no puedo entender cómo acceder solo al "nombre:" dentro de la matriz. He intentado incluso hacer querySnapshot.data().ActivityLikes.name pero falla. ¿Alguien sabe dónde me estoy equivocando?
Firestore no admite la proyección de campos específicos ni la agregación de datos. Tendrá que buscar el documento y luego buscar manualmente el recuento de cada nombre. Además, allí no necesita una await antes onSnapshot . Intente refactorizar el código como se muestra a continuación:
const matchLikes = () => { fire.firestore() .collection("eventLikes") .doc(eventID).onSnapshot((docSnapshot) => { const nameCounts = docSnapshot.data().ActivityLikes.reduce((acc, cur) => { acc[cur.name] = (acc[cur.name] || 0) + 1; return acc; }, {}); // setLikes(querySnapshot.data().ActivityLikes) }) }