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
相关产品推荐
相关产品推荐

