В основном я говорю - у меня есть listview.builder, и каждый ListTile отображает три поля из определенного документа в моей коллекции firestore. Я хочу реализовать следующее: при щелчке по этому списку пользователь должен перейти на страницу, которая отображает больше полей из того же документа. Я хочу знать, что я должен запрашивать и как я могу получить тот же идентификатор документа.
Для большего понимания возьмите, например, приложение чата. Когда щелкнули плитку списка, показывающую профиль другого пользователя pi c и имя, как я могу гарантировать, что следующая страница, предназначенная для отображения большего количества полей об этом пользователе, запрашивает свои данные из того же документа, что и плитка списка, на которую ранее был нажат.
Не уверен, что я это хорошо объяснил, но все равно спасибо, был бы признателен за некоторую помощь.
Часть моего ListView.builder, для большего контекста
FutureBuilder(
future: getFifaTourneyData(),
builder: (_, snapshot) {
return ListView.builder(
itemCount: snapshot.data.length,
itemBuilder: (_, index) {
return GestureDetector(
child: Container(
margin: EdgeInsets.only(top: 5),
width: 120,
height: 195,
decoration: BoxDecoration(
color: Colors.black,
borderRadius: BorderRadius.circular(4),
image: DecorationImage(
image:
AssetImage("assets/images/FifaImage3.jpg"),
colorFilter: new ColorFilter.mode(
Colors.black.withOpacity(0.5),
BlendMode.dstATop),
fit: BoxFit.cover),
),
child: Container(
margin:
EdgeInsets.only(right: 10, left: 10, bottom: 0),
height: 190,
width: 340,
padding: EdgeInsets.all(10),
child: Column(children: <Widget>[
Container(
child: Row(
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
children: <Widget>[
Icon(
FontAwesomeIcons.playstation,
color: Colors.white,
size: 35,
),
Padding(
padding:
EdgeInsets.fromLTRB(130, 0, 0, 0),
),
Text(
"12 / 16 registered",
style: TextStyle(
color: Colors.white, fontSize: 13),
)
]),
),
Padding(padding: EdgeInsets.only(top: 20)),
Container(
alignment: Alignment.center,
child: Text(
snapshot.data[index].data['tourneyname'] !=
null
? snapshot
.data[index].data['tourneyname']
: 'No Name',
style: TextStyle(
color: Colors.white,
fontSize: 23,
fontWeight: FontWeight.bold)),
),
Padding(padding: EdgeInsets.only(top: 7)),
.........