You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter中Cloud Firestore记录更新异常:查到记录却提示文档不存在

问题分析与解决方法

你遇到的错误核心原因是集合名称拼写不一致:

  • 查询数据时用的集合是 'Courses'(复数形式)
  • 更新数据时误写成了 'Course'(单数形式)

Firestore 对集合名称的大小写、单复数严格敏感,你查询到的文档属于 Courses 集合,但更新时却去 Course 集合寻找对应 ID 的文档,自然会提示“请求的文档不存在”。

修正后的代码如下:

Future<void> updateCourse(Course updatedCourse) async {
  QuerySnapshot courseQuery = await FirebaseFirestore.instance
      .collection('Courses')
      .where('title', isEqualTo: updatedCourse.title)
      .get();

  if (courseQuery.docs.isNotEmpty) {
    DocumentSnapshot docSnapshot = courseQuery.docs.first;
    final docId = docSnapshot.id;
    // 修正集合名称为和查询一致的 'Courses'
    await FirebaseFirestore.instance
        .collection('Courses')
        .doc(docId)
        .update({'title': 'This is Pratham'});
  } else {
    print("There is some problem");
  }
}

额外建议:如果你的函数设计意图是更新传入的 updatedCourse 的标题,建议把更新字段改成 {'title': updatedCourse.title},而非写死固定字符串,这样更贴合函数的业务逻辑。

内容的提问来源于stack exchange,提问作者Pratham Dave

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 14:12:33