Как получить данные отдельных подколлекций с помощью Flutter и Cloud Firestore - PullRequest
0 голосов
/ 03 октября 2019

Я пытаюсь создать цифровой Tourguide, гибкий, который показывает MapView и ListView. Приложение начинается с ListView, который показывает доступные туры для пользователя и открывает Гибкое, если пользователь нажимает на один из туров. Я передаю эти записи в ListView и MapView из разных вложенных коллекций в Cloud Firestore.

enter image description here

enter image description here

Где я сейчас борюсь, так это то, что я не могу получить индивидуальные результаты подколлекции в Гибком, если я нажму на «Путеводитель по Лондону», например. Я использую StreamBuilder в своем коде, где я явно назначил руководство Sydney Downtown Guide потоку, но мне нужен код, чтобы распознать документ и открыть соответствующий подколлекцию. По сути, я просто отправляю пользователя с одного экрана на другой с помощью Навигатора, не говоря уже о выбранном документе.

Это мой StreamBuilder

        stream: Firestore.instance
        .collection('my_tours')
        .document('sydney_downtown_guide')
        .collection('places')
        .snapshots(),
        builder: (context, snapshot) {
          if (snapshot.hasError) {
            return Center(child: Text('Error: ${snapshot.error}'));
          }
          if (!snapshot.hasData) {
            return CircularProgressIndicator();
          }
          return Column(
            children: <Widget>[
              Flexible(
                flex: 2,
                child: TourMap(
                  documents: snapshot.data.documents,
                  initialPosition: LatLng(-33.870663, 151.206793),
                  mapController: _mapController,
                ),
              ),
              Flexible(
                flex: 3,
                child: TourList(
                    documents: snapshot.data.documents,
                    mapController: _mapController),
              )
            ],
          );
        },
      ),

Все документы имеют вложенную коллекцию сТо же имя ("места"), поэтому я использовал это в StreamBuilder. Я думал о настройке запроса в функции OnTap, используя регистр «where» и присваивал аналогичные значения документу и его подколлекции и использовал «isEqualTo». Но я не могу найти в этом направлении ничего, что могло бы вписаться в мою проблему.

Структура базы данных:

enter image description here

enter image description here

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