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

Flutter项目升级Firebase后ObjectKey与collection.doc出现未定义错误

修复方案

你遇到的两个报错均为cloud_firestore 2.0.0及以上版本的破坏性API变更导致,具体调整方法如下:

1. 修复docs.data.keys报错

错误原因

新版Firestore将DocumentSnapshot的data属性改为了调用方法,需要执行后才能拿到对应的Map类型数据,无法直接访问data下的keys属性。

修复代码

将原代码

key: ObjectKey(docs.data.keys)

修改为:

key: ObjectKey(docs.data()?.keys)

注:搭配空安全调用符?.可避免数据为空时抛出异常。

2. 修复collection.doc(doc.documentID)报错

错误原因

  • DocumentSnapshot的documentID属性已重命名为id
  • 若你的collection变量是查询返回的QuerySnapshot实例,本身没有doc方法,需要先获取集合引用

修复代码

如果collection是CollectionReference类型,将原代码

collection.doc(doc.documentID).delete();

修改为:

collection.doc(doc.id).delete();

如果collection是QuerySnapshot类型,修改为:

collection.reference.doc(doc.id).delete();

内容的提问来源于stack exchange,提问作者Cavin blake

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 05:54:03