Hola, estoy comenzando con javascript y react-native y estoy tratando de resolver este problema durante horas. ¿Alguien puede explicarme cómo obtener todos los documentos de la colección firestore?
He estado intentando esto:
async getMarkers() { const events = await firebase.firestore().collection('events').get() .then(querySnapshot => { querySnapshot.docs.map(doc => { console.log('LOG 1', doc.data()); return doc.data(); }); }); console.log('LOG 2', events); return events; }El registro 1 imprime todos los objetos (uno por uno) pero el registro 2 no está definido, ¿por qué?
El ejemplo en la otra respuesta es innecesariamente complejo. Esto sería más sencillo, si todo lo que desea hacer es devolver los objetos de datos sin procesar para cada documento en una consulta o colección:
async getMarker() { const snapshot = await firebase.firestore().collection('events').get() return snapshot.docs.map(doc => doc.data()); }si quieres incluir id
async getMarkers() { const events = await firebase.firestore().collection('events') events.get().then((querySnapshot) => { const tempDoc = querySnapshot.docs.map((doc) => { return { id: doc.id, ...doc.data() } }) console.log(tempDoc) }) }De la misma manera con la matriz
async getMarkers() { const events = await firebase.firestore().collection('events') events.get().then((querySnapshot) => { const tempDoc = [] querySnapshot.forEach((doc) => { tempDoc.push({ id: doc.id, ...doc.data() }) }) console.log(tempDoc) }) }Lo hice funcionar de esta manera:
async getMarkers() { const markers = []; await firebase.firestore().collection('events').get() .then(querySnapshot => { querySnapshot.docs.forEach(doc => { markers.push(doc.data()); }); }); return markers; }