Получить весь документ как массив записей - PullRequest
0 голосов
/ 24 марта 2019

У меня есть коллекция в Firestore со следующей структурой:

Publications   
     PubData <---- This is a Doc
        1892872 <---- This is a map  
          Name: abc
          Id: 123 
        1892875 <---- This is a map  
          Name: abc
          Id: 123 

Запрос документа PubData:

fb.publicationsCollection
  .doc("pubdata")
  .get()
  .then(res => {
   let pubData = res.data();
   })

возвращает следующие данные:

{1892872: {…}, 1892875: {…}}

Как я могу вернуть это как массив, чтобы я мог перебрать его с помощью цикла for?

Ответы [ 2 ]

2 голосов
/ 24 марта 2019

Поскольку вы запросили массив записей, вы можете использовать Object.entries:

fb.publicationsCollection
  .doc("pubdata")
  .get()
  .then(res => {
    let pubData = Object.entries(res.data());
    // pubData will look like:
    // [["1892872", {…}], ["1892875", {…}]]
   })
2 голосов
/ 24 марта 2019

Вы можете повторять свойства объекта с помощью цикла foreach :

const pubData = res.data();
Object.keys(pubData).forEach(function(key) {
  // key is 1892872, pubData[key] is the associated object
  console.log(key, pubData[key]);
});

Поскольку вы на самом деле не сказали, что именно вы хотите, чтобы массив содержал, я предоставлю вам возможность выяснить, как ключи и значения карты документа должны быть представлены в этом конечном массиве.

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