Как я могу получить доступ к самым внутренним документам во вложенных структурах коллекций?

#flutter

#flutter

Вопрос:

Как видно на рисунке, в firestore есть структура коллекции. Я хочу показать это с помощью listview, перейдя к информации о документе в конце. Но я не могу просмотреть его на экране.

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

Код здесь:

      @override
  Widget build(BuildContext context) {

      randevular = databaseRef
          .collection(
          'kuaforumDB/$_salonID/BekleyenRandevular/')
          .snapshots();

    return StreamBuilder<QuerySnapshot>(
        stream: randevular,
        builder: (BuildContext context, AsyncSnapshot<QuerySnapshot> snapshot) {
          if(!snapshot.hasData) {
            return Column(

              children:<Widget> [
                SizedBox(
                  height: 100,
                ),
                Center(
                  child: Image.asset("assets/images/icons/fon.webp",matchTextDirection: true,
                    height: 140.0,
                    width: 140.0,
                  ),),
                SizedBox(
                    height: 20
                ),
                Center(
                    child: new Text('Henüz bir randevu oluşturmadınız.')
                )

              ],


            );
          }
          else if (snapshot.connectionState == ConnectionState.waiting) {
            return Center(
                child: new Center(
                  child: new CircularProgressIndicator(
                    value: null,
                    strokeWidth: 7.0,
                  ),
                )
            );
          } else {

            return ListView(
              children: snapshot.data.documents
                  .map((document) {
                    var query = databaseRef
                        .collection('kuaforumDB/')
                        .document('$_salonID')
                        .collection('BekleyenRandevular')
                        .document(document.documentID)
                        .collection('get')
                        .snapshots();
                 return StreamBuilder<QuerySnapshot> (
                                stream: query,
                      builder: (BuildContext context, AsyncSnapshot<QuerySnapshot> snapshot2){
                        if (!snapshot2.hasData) return Text("Loading...");
                       return ListView(
                          children: snapshot2.data.documents
                              .map((DocumentSnapshot doc) => Card(
                              child:  ListTile(
                                leading: IconButton(
                                  tooltip: '',
                                  icon: const Icon(Icons.check_circle, color: Colors.red,),
                                  color: doc['randevuTarih']
                                      .toDate()
                                      .isBefore(DateTime.now())
                                      ? Colors.green
                                      : Colors.orangeAccent,
                                  iconSize: 30,
                                  onPressed: () {},
                                ),
                                title: Text(AppConstants.formatter
                                    .format((doc['randevuTarih'].toDate())
                                    .add(Duration(hours: 0)))
                                    .toString()),
                                subtitle: Text('Randevu Onay Bekleniyor.'),
                                trailing: Icon(Icons.keyboard_arrow_right,
                                    color: Colors.grey, size: 30.0),
                                onTap: () {
                                  Navigator.push(
                                      context,
                                      MaterialPageRoute(
                                          builder: (content) => MyPendingDetailPage(
                                            salonID: _salonID.toString(),
                                            userID: mPhone,
                                            randevuID:
                                            doc.documentID.toString(),
                                            randevuTarih: AppConstants
                                                .formatter
                                                .format((doc['randevuTarih']
                                                .toDate())
                                                .add(Duration(hours: 0)))
                                                .toString(),
                                            randevuHizmet: doc['hizmetler'],
                                            randevuFiyat:
                                            doc['fiyat'].toString(),
                                            randevuSure:
                                            doc['sure'].toString(),
                                            randevuFavori:
                                            doc['favori'] == null
                                                ? false
                                                : doc['favori'],
                                            randevuBittimi:
                                            doc['randevuTarih']
                                                .toDate()
                                                .isBefore(
                                                DateTime.now())
                                                ? true
                                                : false,
                                            ayBasi: startofmonth,
                                            sonrandevu : doc['randevuTarih'],
                                          )));
                                }, )))
                              .toList(),
                        );
                      },
                    );
            }).toList());
          }
        });
  }
  

Использование вложенного Listview в приведенном выше коде могло вызвать вопрос. Но я не знаю, как это решить. Когда я проверяю это, я вижу, что я действительно могу извлечь данные, но я не могу показать их на экране.

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