J'essaie de récupérer la référence du document à partir d'une requête. Mon code renvoie undefined
. Je peux obtenir le chemin en extrayant diverses parties de documentSnapshot.ref
, mais ce n'est pas simple.
Ce que je voudrais retourner est une référence que je pourrai ensuite utiliser pour .update
le document, sans avoir à spécifier la collection et à utiliser documentSnapshot.id
La documentation de la propriété path
est ici
const db = admin.firestore();
return db.collection('myCollection').get().then(querySnapshot => {
querySnapshot.forEach(documentSnapshot => {
console.log(`documentReference.id = ${documentSnapshot.id}`);
console.log(`documentReference.path = ${documentSnapshot.path}`);
// console.log(`documentReference.ref = ${JSON.stringify(documentSnapshot.ref)}`);
});
});
documentReference.id = Jez7R1GAHiR9nbjS3CQ6
documentReference.path = undefined
documentReference.id = skMmxxUIFXPyVa7Ic7Yp
documentReference.path = undefined
Dans votre code, documentSnapshot
est un objet de type DocumentSnapshot . Il semble que vous supposiez qu'il s'agit d'un objet de type DocumentReference . Un but d'une référence est de localiser un document. Le but d'un instantané est de recevoir le contenu d'un document après qu'il a été interrogé - ce n'est certainement pas la même chose. Un DocumentSnapshot n'a pas de propriété path
.
Si vous souhaitez que la DocumentReference d'un document qui a été récupéré dans un DocumentSnapshot, vous pouvez utiliser ref dans le snapshot. Ensuite, vous pouvez obtenir la propriété path de la référence:
documentSnapshot.ref.path