Получение ссылки на документ Cloud Firestore из документа

Проблема

Я пытаюсь получить ссылку на документ из запроса. Мой код возвращает undefined. Я могу получить путь, извлекая различные части documentSnapshot.ref, но это непросто.

Я бы хотел вернуть ссылку, которую потом смогу использовать для .update документа без необходимости указывать коллекцию и использовать documentSnapshot.id

Документация для свойства path находится здесь

Мой код

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

person Jason Berryman    schedule 22.02.2018    source источник


Ответы (1)


В вашем коде documentSnapshot - это объект типа DocumentSnapshot. . Похоже, вы предполагаете, что это объект типа DocumentReference < / а>. Цель ссылки - найти документ. Цель моментального снимка - получить содержимое документа после запроса - это определенно не одно и то же. DocumentSnapshot не имеет свойства path.

Если вам нужна DocumentReference документа, полученного в DocumentSnapshot, вы можете использовать ref в снимке. Затем вы можете получить свойство пути ссылки:

documentSnapshot.ref.path
person Doug Stevenson    schedule 22.02.2018
comment
Привет, Дуг. Спасибо за это. Я просмотрел документацию DocumentSnapshot и DocumentReference и явно испытал момент невежества. Теперь все работает. Раньше я использовал documentSnapshot.ref.path, но не смог найти, где я его использовал. - person Jason Berryman; 22.02.2018