【问题标题】:Getting Firestore document ID when mapping Collection映射集合时获取 Firestore 文档 ID
【发布时间】:2025-11-26 17:05:01
【问题描述】:

我正在使用 Flutter 构建一个列表视图

          ...snapshot.data.docs.map((DocumentSnapshot document) {
            Map<String, dynamic> data =
                document.data() as Map<String, dynamic>;

但我想在按下相应的 List Tile 时从 Firebase 中删除一个文档

我正在考虑使用

              onTap: () async {
                await FirebaseFirestore.instance
                    .collection('User Data')
                    .doc('document_id')
                    .delete();
              },

这样做但我需要 document_id 如何在映射时获取文档 ID

这是我的完整代码

          ...snapshot.data.docs.map((DocumentSnapshot document) {
            Map<String, dynamic> data =
                document.data() as Map<String, dynamic>;
            return InkWell(
              onTap: () async {
                await FirebaseFirestore.instance
                    .collection('User Data')
                    .doc('document_id')
                    .delete();
              },
              child: HomeCard(

??????

【问题讨论】:

    标签: firebase flutter dart google-cloud-firestore


    【解决方案1】:

    DocumentSnapshot 类有一个 id 属性。

             ...snapshot.data.docs.map((DocumentSnapshot document) {
                Map<String, dynamic> data =
                    document.data() as Map<String, dynamic>;
                return InkWell(
                  onTap: () async {
                    await FirebaseFirestore.instance
                        .collection('User Data')
                        .doc(document.id)
                        .delete();
                  },
                  child: HomeCard(
    

    您可以查看Flutter api page.上的文档

    【讨论】: