Облачная функция Firestore с вложенными коллекциями (node.js) - PullRequest
0 голосов
/ 18 июня 2020

Допустим, у меня есть база данных firestore, в которой хранятся компании. У каждой компании есть проекты, и у каждого проекта есть рабочие.

У меня есть все три из этих коллекций (компании, проекты и рабочие) в отдельных коллекциях, которые ссылаются друг на друга по идентификатору. (У каждого проекта есть поле компании с идентификатором компании, а у каждого работника есть поле проекта с идентификатором проекта).

Я могу получить все проекты компании по одному маршруту и ​​всех сотрудников проекта по другому маршруту.

Я пытаюсь создать единый маршрут, который возвращает массив компаний, структурированный следующим образом:

[
    {
        id: "01",
        name: "Company 1",
        Projects: [
            {
                id: "01",
                name: "Project 1",
                Laborers: [
                    {
                        id: "01",
                        name: "Laborer 1"
                    },
                    {
                        id: "02",
                        name: "Laborer 2"
                    }
                ]
            },
            {
                id: "02",
                name: "Project 2",
                Laborers: [
                    {
                        id: "01",
                        name: "Laborer 1"
                    },
                    {
                        id: "02",
                        name: "Laborer 2"
                    }
                ]
            }
        ]
    },
    {
        id: "02",
        name: "Company 2",
        Projects: [
            {
                id: "01",
                name: "Project 1",
                Laborers: [
                    {
                        id: "01",
                        name: "Laborer 1"
                    },
                    {
                        id: "02",
                        name: "Laborer 2"
                    }
                ]
            },
            {
                id: "02",
                name: "Project 2",
                Laborers: [
                    {
                        id: "01",
                        name: "Laborer 1"
                    },
                    {
                        "id": "02",
                        name: "Laborer 2"
                    }
                ]
            }
        ]
    }
]

Как собрать данные вместе таким образом и вернуть их по одному маршруту с использованием функций firebase? (Я использую express. js в качестве бэкэнда рамки).

...