Группировка данных Firestore в другой формат массива - PullRequest
0 голосов
/ 05 июля 2019

Мне нужно сгруппировать «сырые» данные Firestore, которые я получаю, в формат массива, который я могу использовать для их отображения соответствующим образом.

Я получаю это из Firestore:

{
 activityName: "BFG",
 comment: "Roger is naughty",
 mark: 86,
 subject: "English",
 task: "reading",
 term:1,
 year: 2019
}, {
 activityName: "The Twits",
 comment: "Roger is really good",
 mark: 99,
 subject: "English",
 task: "reading",
 term:2,
 year: 2019
},
{
 activityName: "Basic sums",
 comment: "Roger is average",
 mark: 19,
 subject: "Maths",
 task: "Addition",
 term:2,
 year: 2019
}

и я хочу представить это как сгруппированные данные в аккордеонном образовании

Год -> Срок -> Предмет -> Задача -> ActivityName -> Отметить (и комментарии)

Поэтому я считаю, чтоЛучший / самый простой способ - преобразовать данные в следующий формат, чтобы упростить цикл для отображения сгруппированных данных.

{
 year:2019,
 terms: [
        {term: 1,
         subjects: [
             {subject: "English",
              tasks: [
                     {task: "reading",
                      activities: [
                                  {activityName: "BFG",
                                   result: [
                                           {comment: "Roger is naughty",
                                            mark: 86
                                           }]
                                  }]
                      }]
              }]
         },
         {term: 2,
         subjects: [
             {subject: "English",
              tasks: [
                     {task: "reading",
                      activities: [
                                  {activityName: "The Twits",
                                   result: [
                                           {comment: "Roger is really good",
                                            mark: 99
                                           }]
                                  }]
                      }]
              }]
         },
         {term: 2,
         subjects: [
             {subject: "Maths",
              tasks: [
                     {task: "Addition",
                      activities: [
                                  {activityName: "Basic sums",
                                   result: [
                                           {comment: "Roger is average",
                                            mark: 19
                                           }]
                                  }]
                      }]
              }]
         }
 ]
}

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

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