Получить список документов в разных коллекциях с Firestore в Flutter - PullRequest
0 голосов
/ 28 января 2020

У меня есть список пользователей с другим портфелем ios. Каждый портфель имеет те же свойства, но и набор инвестиций. Это будет примерно так:

Map user = {
  "name": "John",
  "portfolios": [ // collection
    {
      "title": "My portfolio 1",
      "investments": [ // collection
        {"title": "My investment 1.2"},
        {"title": "My investment 1.2"}
      ]
    },
    {
      "title": "My portfolio 2",
      "investments": [ // collection
        {"title": "My investment 2.1"},
        {"title": "My investment 2.2"},
        {"title": "My investment 2.3"}
      ]
    }
  ]
};

Чтобы получить мой портфель ios Я делаю что-то вроде этого:

Future getMyPortfolios() async {
    final userId = await authService.getUserId();
    final portfolios = await Firestore.instance
        .collection('users')
        .document(userId)
        .collection('portfolios')
        .getDocuments();
    return portfolios.documents;
  }

Но это только возвращает портфель ios с их названия, а не внутренняя коллекция с инвестициями.

Я мог бы сделать еще один звонок с этими идентификаторами, но мне было интересно, есть ли более быстрый способ и получить все от этого конкретного пользователя.

1 Ответ

1 голос
/ 29 января 2020

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

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