クエリからドキュメント参照を取得しようとしています。私のコードはundefined
を返します。 documentSnapshot.ref
のさまざまな部分を抽出することでパスを取得できますが、これは簡単ではありません。
返したいのは、コレクションを指定して.update
を使用しなくても、後でドキュメントをdocumentSnapshot.id
に使用できる参照です。
path
プロパティのドキュメントは here です
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
コードでは、documentSnapshot
はタイプ DocumentSnapshot のオブジェクトです。 DocumentReference タイプのオブジェクトであると想定しているようです。参照の目的は、ドキュメントを見つけることです。スナップショットの目的は、クエリが実行された後にドキュメントのコンテンツを受信することです。これらはまったく同じものではありません。 DocumentSnapshotにはpath
プロパティがありません。
DocumentSnapshotでフェッチされたドキュメントのDocumentReferenceが必要な場合は、スナップショットで ref を使用できます。次に、refのパスプロパティを取得できます。
documentSnapshot.ref.path