Flutter — Как выполнить цикл по вложенной коллекции и преобразовать ее в строку с данными?

#database #flutter #dart #datatable

#База данных #трепетать #дротик #данные доступны

Вопрос:

Итак, у меня есть эта структура БД: введите описание изображения здесь

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

 StreamBuilderlt;QuerySnapshotgt;(  stream: FirebaseFirestore.instance  .collection("workouts")  .doc(workoutId)  .collection("exercises")  .snapshots(),  builder: (BuildContext context, AsyncSnapshotlt;QuerySnapshotgt; snapshot) {  if (!snapshot.hasData) {  return const Text("There are no exercises");  }   return DataTable(  decoration: BoxDecoration(  border: Border.all(  width: 2,  color: kBlack,  ),  ),  dataRowHeight: SizeConfig.screenHeight * 0.05,  dataTextStyle: const TextStyle(  fontSize: kAppButtonTextFontSize, color: kAppTextColor),  headingRowHeight: SizeConfig.screenHeight * 0.05,  headingTextStyle: const TextStyle(fontSize: kAppButtonTextFontSize),  //horizontalMargin,  columnSpacing: 20,  showCheckboxColumn: true,  showBottomBorder: false,  dividerThickness: 3,  columns: const [  DataColumn(  label: Text(  "Set#",  style: TextStyle(  fontStyle: FontStyle.italic,  color: kBlack,  ),  ),  numeric: true,  ),  DataColumn(  label: Text(  "Weight",  style: TextStyle(  fontStyle: FontStyle.italic,  color: kBlack,  ),  ),  numeric: true,  //tooltip: "This is Last Name",  ),  DataColumn(  label: Text(  "Reps",  style: TextStyle(  fontStyle: FontStyle.italic,  color: kBlack,  ),  ),  numeric: true,  ),  DataColumn(  label: Text(  "ToFailure",  style: TextStyle(  fontStyle: FontStyle.italic,  color: kBlack,  ),  ),  numeric: true,  ),  ],  rows: _getExercises(snapshot),// Here I want to get the rows  );  });    _getExercises(AsyncSnapshotlt;QuerySnapshotgt; snapshot) {  setState(() {  //How to structure the data here so as to get DataRows   snapshot.data!.docs.forEach((doc) {  //print(  // 'DOCUMENT DATA ='   doc.data().toString(),  // );  completedExerciseSetRows.add(  DataRow(cells: [  DataCell(Text()),    DataCell(Text()),    DataCell(Text()),   ]),  );  });  });  

введите описание изображения здесь

Комментарии:

1. было бы полезно, если бы вы предоставили свой класс или классы модели данных (если они у вас есть) и изображение того, как будет выглядеть ваша база данных. я раскрыл похожее дело, надеюсь, я смогу вам помочь

2. У меня нет класса модели, для этого он не требуется. Я добавил изображение того, как должна выглядеть таблица данных.