Existe-t-il un moyen d'obtenir l'ID généré automatiquement pour un document créé dans le cadre d'un lot utilisant Firestore?Puis-je obtenir l'ID généré pour un document créé avec batch(). Set à l'aide de Firestore?
Lorsque vous utilisez .add()
je peux facilement obtenir un ID:
db.collection('posts')
.add({title: 'Hello World'})
.then(function(docRef) {
console.log('The auto-generated ID is', docRef.id)
postKey = docRef.id
});
En utilisant .batch()
je peux ajouter un document avec .doc()
et .set()
:
const batch = db.batch();
const postsRef = db.collection('posts').doc(postKey);
batch.set(postsRef, {title: 'Hello Again, World'});
const votesRef = db.collection('posts').doc(postKey)
.collection('votes').doc();
batch.set(votesRef, {upvote: true})
batch.commit().then(function() {
});
Puis-je obtenir l'ID généré automatiquement du document qui a été ajouté à votes
?
Mise à jour:
Doug Stevenson est correct - je peux accéder à l'ID à votesRef.id
Je suis l'exemple de la documentation Web Firestore: 'var newCityRef = this.afs.collection (" villes "). Doc();' me donne une erreur "attendus 1 arguments, mais a obtenu 0". Cela m'empêche complètement d'aller de l'avant. – FiringBlanks
@FiringBlanks Peut-être angulaire fait quelque chose de différent de l'API JavaScript standard? –
@DougStevenson On dirait qu'ils en ont fait un paramètre obligatoire. Voir ici pour plus d'informations: https://github.com/firebase/firebase-js-sdk/blob/d43d461aaa2496d4cd12fd593373f6dad214716f/packages/firestore/src/api/database.ts#L397-L408 – Edric