Связанный список для документов пожарного магазина - PullRequest
0 голосов
/ 31 марта 2019

У меня есть сценарий использования для создания связанного списка документов, таких как {name, next_ptr} и next_ptr - это ссылка на другой документ

У меня следующий код, и я получаю next_ptr, но не получаю полей, принадлежащих next_ptr

Я получаю следующий вывод

KkkGTTKjuwcGmzJzQ3Wa => FIRE => undefined

iW9lm7sYkgvuZPdVvrZE => GAS => undefined

NtTyJNjqIT79PZ6zkqtY => WATER => undefined

Ожидаемый результат

KkkGTTKjuwcGmzJzQ3Wa => FIRE => GAS

iW9lm7sYkgvuZPdVvrZE => GAS => WATER

NtTyJNjqIT79PZ6zkqtY => WATER => undefined

Код


db = defaultApp.firestore() ;


abc_collection = db.collection("abc") ;

abc_collection.get() 
.then( data => {
  data.forEach(item => {
    console.log(item.id , "=>", item.get('name')) ;

next_ref = item.get('next_ptr') ;
    next_ref.get("name").then(item => {
      console.log(item) ;
    }).catch("") ;

  } ) ;
}).catch("") ;

enter image description here

enter image description here

enter image description here

1 Ответ

0 голосов
/ 31 марта 2019

Похоже, вы предполагаете, что результаты запроса содержат все ссылочные документы:

item.get('next_ptr')['name']

То, что item.get('next_ptr') возвращает, является DocumentReference объектом, а не всем содержимым документа. Вам придется запросить этот документ с помощью метода get () , чтобы загрузить его содержимое, или найти документ с использованием его идентификатора в результатах, которые вы запросили (если вы гарантируете, что ссылка всегда указывает на документ в той же коллекции.

Возможно, было бы лучше сохранить идентификатор строки документа, если вы не хотите иметь дело с DocumentReference.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...