Есть ли способ превратить результаты поиска FireStore в массив? - PullRequest
0 голосов
/ 15 января 2019

Я пытаюсь создать массив из результатов поиска запроса в firestore.

Результаты поиска по запросу, похожему на

  docRef.get().then(function(querySnapshot) {
      querySnapshot.forEach(function(doc) {
        var dataArray =  doc.data();
        var arrayOutputs = [dataArray];

         var name = arrayOutputs[0].Name;

        console.log(name);

      });
    });

Вернет все результаты, если есть три результата, которые он показывает, но я пытаюсь поместить каждый из Объектов в один массив. Вытягивать результаты поиска отдельно, если это необходимо, и использовать их для цикла for.

спасибо

Ответы [ 2 ]

0 голосов
/ 16 января 2019

Если вы хотите отправить результат в массив, выполните:

docRef.get().then(function(querySnapshot) {
    var myArray = [];
    querySnapshot.forEach(function(doc) {
        myArray.push(doc.data());
    });
});
0 голосов
/ 15 января 2019

Код OP присваивает arrayOutputs одному элементному массиву на каждой итерации. Чтобы получить массив результатов, сопоставьте возвращенные документы, получая data() от каждого ...

docRef.get().then(function(querySnapshot) {
   let allDocData = querySnapshot.docs.map(doc => doc.data());
   console.log(JSON.stringify(allDocData));
});

Редактировать Та же идея с циклом for, а не с картой ...

docRef.get().then(function(querySnapshot) {
    let allDocData = [];
    querySnapshot.forEach(function(doc) {
        allDocData.push(doc.data());
    });
    console.log(`we found ${allDocData.length} docs as follows...`);
    console.log(JSON.stringify(allDocData));
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...