78 votes

Firestore - batch.add n'est pas une fonction

La documentation relative au lot Firestore n'énumère que set() , update() et delete() comme opérations autorisées.

N'y a-t-il aucun moyen d'ajouter une opération add() au lot? J'ai besoin d'un document à créer avec un identifiant généré automatiquement.

172voto

hatboysam Points 1191

Vous pouvez le faire en deux étapes:

 // Create a ref with auto-generated ID
var newCityRef = db.collection('cities').doc();

// ...

// Add it in the batch
batch.set(newCityRef, { name: 'New York City' });
 

La méthode .doc() n'écrit rien sur le réseau ou le disque, elle crée simplement une référence avec un identifiant généré automatiquement que vous pourrez utiliser plus tard.

6voto

Dans mon cas, en utilisant AngularFire2, je devais utiliser la méthode batch.set (), en passant comme premier paramètre la référence du document avec un ID créé précédemment et l'attribut reference:

 import { AngularFirestore } from '@angular/fire/firestore';
...
private afs: AngularFirestore
...
batch.set(
    this.afs.collection('estados').doc(this.afs.createId()).ref,
    er.getData()
  );
 

3voto

sgt_lagrange Points 294

Selon les docs

Dans les coulisses, .add (...) et .doc (). Set (...) sont complètement équivalents, vous pouvez donc utiliser celui qui vous convient le mieux.

Peut-être cela s'applique-t-il également aux lots?

0voto

Vishnu B Points 21

Créez la référence à la collection dans laquelle vous allez ajouter les données de lot. Nous passons en boucle sur req.body en utilisant forEach et définissons chaque donnée à ajouter à la collection à l'aide de la méthode set

Nous validons les données et les sauvegardons dans la collection à l'aide de la méthode commit. En cas de succès, nous envoyons une réponse.

nuage de feu

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X