web-dev-qa-db-fra.com

Obtenir tous les documents d'une collection dans Firestore

Salut, je commence avec javascript et réagis en natif et j'essaie de résoudre ce problème depuis des heures. Quelqu'un peut-il m'expliquer comment obtenir tous les documents de la collection Firestore?

J'ai essayé ceci:

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;
}

Le journal 1 imprime tous les objets (un par un) mais le journal 2 n'est pas défini, pourquoi?

18
Vlt

L'exemple de l'autre réponse est inutilement complexe. Ce serait plus simple, si tout ce que vous voulez faire est de retourner les objets de données brutes pour chaque document d'une requête ou d'une collection:

async getMarker() {
    const snapshot = await firebase.firestore().collection('events').get()
    return snapshot.docs.map(doc => doc.data());
}
44
Doug Stevenson

Je l'ai fait fonctionner de cette façon:

async getMarkers() {
  const markers = [];
  await firebase.firestore().collection('events').get()
    .then(querySnapshot => {
      querySnapshot.docs.forEach(doc => {
      markers.Push(doc.data());
    });
  });
  return markers;
}
3
Vlt

si vous devez inclure la clé du document dans la réponse, une autre alternative est:

async getMarker() {
    const snapshot = await firebase.firestore().collection('events').get()
    const documents = [];
    snapshot.forEach(doc => {
       const document = {[doc.id}: doc.data()};
       documents.Push(document);
    }
    return documents;
}
0
Rodrigo