Firebase Firestore Получить подколлекции для каждого документа в коллекции - PullRequest
0 голосов
/ 15 февраля 2019

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

Вот массив, который мне нужно создать:

[
  {
    "sectiontitle": "first section",
    "sectiontype": "1",
    "__id__": "6jwwukHmOs1743yC13vH",
    "subsections": [
      {
        "desc": "blah blah blah",
        "__id__": "KTq4MJTEMbDfR33RoX9J"
      },
      {
        "desc": "blah blah blah",
        "__id__": "ASFSADFSAFSADFSADFFS"
      }
    ]
  },
  {
    "sectiontitle": "second section",
    "sectiontype": "1",
    "__id__": "5jwwDHEDOs1743yC13vG",
    "subsections": [
      {
        "desc": "blah blah blah",
        "__id__": "DFG4MJTEMbDfR33DDDDD"
      },
      {
        "desc": "blah blah blah",
        "__id__": "ASDFGHFSAFSADFSHJFRD"
      }
    ]
  }
]

Мой код:

    // get sections
    firebase.firestore().collection("sections").get().then((sections) => {
      var myarray = [];
      var i = 0;
      sections.forEach((section) => {
        var sectiondata = section.data();
        sectiondata.__id__ = section.id
        sectiondata.subsections = [];
        myarray.push(sectiondata);

        //get subsections
        firebase.firestore().collection("sections").doc(sectiondata.__id__).collection("subsections").get().then((subsections) => {
          subsections.forEach((subsection) => {
            var subsectiondata = subsection.data();
            subsectiondata.__id__ = subsection.id;
            myarray.push('sections.' + i + '.subsections', subsectiondata); // problem is i index is not correct
          });
        });

        i++;

      });
    });

Эта проблема заключается в том, что индекс i неверен, поскольку чтение разделов уже завершено и циклически проходит через foreach ко времени начала чтения подразделов.Я не знаком с обещаниями Javascript, поэтому я надеялся, что кто-нибудь может мне помочь с решением этой проблемы?

По существу, для каждого раздела добавьте подразделы.

Спасибо.

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