Arhn - архитектура программирования

Как получить данные из цикла snapshot.forEach и вернуться через маршрут получения

Я новичок в firebase и немного поработал с node.js. По сути, я хочу получить данные из моей коллекции «coffee» и отправить их через мой / test маршрут, чтобы я мог работать с ними в моем интерфейсе. Не могу понять, как его вернуть.

Я получил его, чтобы вернуть первый индекс, но не остальную часть списка, поместив возврат в цикл forEach. Но я хочу весь список.

//test route for database 
router.get("/test", (req, res) =>{
  // For loop goes thorugh our collection list and displays them in log. 
  db.collection('coffee').get().then((snapshot) => {
    let getCoffee = snapshot.forEach((doc) => {
      //console.log(doc.data());  
      const dataArray = [];
      dataArray.push(doc.data());
      console.log(dataArray);
    });
    return res.json(getCoffee);

  })
  .catch((err) => {
    console.log('Error getting documents', err);
  });


});

после редактирования:


router.get("/test", (req, res) =>{    
  // For loop goes thorugh our collection list and displays them in log. 
  db.collection('coffee').get().then((snapshot) => {
    let getCoffee = snapshot.map((doc) => {
      return doc.data();
    });

    return res.json(getCoffee);

  })
  .catch((err) => {
    console.log('Error getting documents', err);
  });


});


console.log (снимок) дает мне следующее:

CollectionReference {_firestore: Firestore {_settings: [Object], _settingsFrozen: true, _serializer: [Serializer], _projectId: 'test-3ad87', registerListenersCount: 0, _lastSuccessfulRequest: 1587563014339, _backoffSettings: _BackoffSettings: _BackoffSettings: _BackoffSettings: _BackoffSettings: _BackoffSettings: _backoffSettings: _BackoffSettings: _BackoffSettings: _backoffSettings: _BackoffSettings: _BackoffSettings: _Transient: _backoffSettings: _BackoffSettings: _BackoffSettings: _backoffSettings: _Transient: [ClientPool]}, _queryOptions: QueryOptions {parentPath: [ResourcePath], collectionId: 'coffee', converter: [Object], allDescendants: false, fieldFilters: [], fieldOrders: [], startAt: undefined, endAt: undefined, limit : undefined, limitType: undefined, смещение: undefined, проекция: undefined}, _serializer: Serializer {createReference: [Function]}}, _readTime: Timestamp {_seconds: 1587563014, _nanoseconds: 390810000}, _size: 12,


Ответы:


1

Ваш снимок работает с обещанием в блоках then и catch. Проблема в том, что ваш внешний метод get завершается задолго до завершения внутреннего обещания. Убедитесь, что вы возвращаете результаты обещания, а не просто выполняете его.

22.04.2020

2
  • не могли бы вы подробнее рассказать об этом? Я попытался удалить и вставить это, но получил: Ошибка при получении документов TypeError: snapshot.map не является функцией 22.04.2020
  • Не могли бы вы опубликовать структуру данных снимка. 22.04.2020
  • console.log (снимок) и опубликуйте данные 22.04.2020
  • ага, тогда что ?. 22.04.2020
  • Переменная snapshot - это QuerySnapshot объект, который имеет метод forEach, но не метод map. Вы захотите использовать snapshot.docs.map(...) для перебора всех документов. 22.04.2020
  • Не знаю, как и почему, но я попытался сделать это снова с самого начала, и это сработало. Спасибо, что задержались там 22.04.2020
  • Мур, спасибо тебе 10.01.2021
  • Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..