Firestore — объединить документы из двух разных коллекций — React Typescript

Я создал три коллекции, потому что хочу иметь возможность фильтровать поиск по задачам или пользователям и т. д.

Моя коллекция Firebase выглядит так:

Collection 1 - (Users)
- username
- name

Collection 2 - (Tasks)
- taskname
- points

Collection 3 - (taskData)
- userId (id from users collection)
- taskId (id from task collection)
- timestamp 

React Typescript — получение данных коллекции

interface UserTask {
    id: String;
    taskId: String;
    userId: String;
    date: Date;
}


  const [userTasks, setUserTasks] = useState<UserTask[]>([]);


  const getTaskData = () => {
    const taskRef = firestore.collection('taskData');
    taskRef.get().then((snapshot) => {
      const taskData = snapshot.docs.map((doc) => ({
        id: doc.id,
        ...doc.data()
      }))
      console.log(taskData)
    })
  }

Я могу получить TaskData, который имеет userId и TaskId, но не смог присоединиться к таблицам и получить Users.name и Tasks.taskname. Я хочу получить вывод, как показано ниже. Как мне это сделать?

{
  "taskName1": [
    {
      "name": "John",
      "date": "12.01.2002"
    },
    {
      "name": "Maya",
      "date": "15.01.2002"
    },
    {
      "name": "Hanna",
      "date": "13.01.2003"
    }
  ],
  "taskName2": [
    {
      "name": "Maya",
      "date": "20.04.2003"
    },
    {
      "name": "Maya",
      "date": "17.06.2003"
    }
  ],
  "taskName3": [
    {
      "name": "John",
      "date": "21.05.2003"
    }
  ]
}

person CookieMonster    schedule 29.01.2021    source источник
comment
вы рассматриваете firebase как базу данных SQL, я предлагаю вам поместить все в одну коллекцию или использовать что-то вроде supabase.io   -  person Aaron Saunders    schedule 30.01.2021
comment
Действительно, Firestore не имеет запросов на соединение и позволяет читать только из одной коллекции за раз. Пока у вас есть 3 коллекции, вам нужно будет запрашивать их по отдельности, а затем работать с выводом. Подобные вопросы уже задавались в StackOverflow: link_1, ссылка_2.   -  person Deniss Tsokarev    schedule 01.02.2021