Я пытаюсь создать цифровой Tourguide, гибкий, который показывает MapView и ListView. Приложение начинается с ListView, который показывает доступные туры для пользователя и открывает Гибкое, если пользователь нажимает на один из туров. Я передаю эти записи в ListView и MapView из разных вложенных коллекций в Cloud Firestore.
Где я сейчас борюсь, так это то, что я не могу получить индивидуальные результаты подколлекции в Гибком, если я нажму на «Путеводитель по Лондону», например. Я использую 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». Но я не могу найти в этом направлении ничего, что могло бы вписаться в мою проблему.
Структура базы данных: