web-dev-qa-db-fra.com

Qu'est-ce que Snapshotchanges dans Firestore?

cette fonction est appelée par le constructeur. quelqu'un peut-il m'expliquer en profondeur ce qu'il fait?

  initializeItems(){
this.travelList$ = this.plsdala.getTravelList()
.snapshotChanges()
.map(
  changes => {
    return changes.map(c=>({
      key: c.payload.key, ...c.payload.val()
    })).slice().reverse();

   //to reverse order
  });

}
5
Jennica

C’est l’état actuel de la collecte des incendies. Il renvoie un observable de données . Vous l'utiliserez chaque fois que vous souhaitez pouvoir également obtenir vos métadonnées en tant que documentID, par exemple en utilisant, par exemple, valueChanges () qui renvoie l'observable contenant des données enregistrées dans le document uniquement. Il ne contient pas de métadonnées.

Cela signifie que vous utiliseriez habituellement valueChanges () pour obtenir des données et snapshotChanges () chaque fois que vous auriez besoin de métadonnées, par exemple. supprimer ou mettre à jour un document.

Votre code obtient essentiellement des données et des métadonnées de document et en extrait uniquement des données. Ensuite, les données sont inversées pour passer de la fin de la collecte au début. 

9
Robo Bayer

Comme la fonction est asynchrone, elle n’attend pas pour terminer avant de continuer avec le reste du code ci-dessous. Ainsi, console.log (travelArray) s'exécute avant même la réception des données. (n'a pas vérifié les erreurs de syntaxe ci-dessous)

let travelArray = [];
this.travelList$.subscribe(res => {
  res.map(c => {
    travelArray.Push(c);
  })
})
.subscribe((a: travelArray) => {
       console.log(a);
      }, error => {
      });
0
Pat