Не удалось получить идентификатор документа

# #flutter #dart #google-cloud-firestore

Вопрос:

Я рассмотрел и перепробовал несколько способов получения идентификатора документа для данных каждого документа, но я не могу этого сделать. Пожалуйста, помогите.

окончательный _domainPost = FirebaseFirestore.экземпляр.коллекция(«домен разработки»);

                  StreamBuilder(
                    stream: _domainPost.snapshots(),
                    builder: (BuildContext context,
                        AsyncSnapshot<QuerySnapshot> snapshot) {
                      if (!snapshot.hasData)
                        return new Text("There are no records.");
                      if (snapshot.connectionState == ConnectionState.waiting)
                        return Center(child: CircularProgressIndicator());
                      List devDomainList = snapshot.data!.docs;

                      List<DevelopmentDomain> _records = devDomainList
                          .map(
                            (devDomainPost) => DevelopmentDomain(
                                
                                title: devDomainPost['title'],
                                description: devDomainPost['description']),
                          )
                          .toList();
                      return ListView.builder(
                        padding:
                            const EdgeInsets.fromLTRB(20.0, 20.0, 20.0, 60.0),
                        itemCount: snapshot.data!.size,
                        itemBuilder: (context, index) {
                          return DevelopmentDomainCard(
                            developmentDomainRecord: _records[index],
                            isAdmin: _isAdmin,
                          );
                        },
                      );
                    },
                  )
 

Ответ №1:

Каждый документ снимается в моментальном снимке.данные!.docs будет иметь свойство id, содержащее идентификатор документа из Firestore.

В вашем случае, devDomainPost.id он должен быть у вас на карте.