Flutter中使用await调用Firebase get方法引发类型不匹配异常求助
问题解决:Firebase调用await时的类型异常
错误原因
核心问题是你没有调用get()方法——usercollection.doc(firebaseuid).get是方法的引用(类型为Function),并非返回的Future对象,自然不能用await修饰。必须加上括号执行方法,才能获取可被await的Future实例。
修正后的代码
var firebaseuid = FirebaseAuth.instance.currentUser?.uid; // 关键修正:给get加上(),调用方法获取Future DocumentSnapshot userdoc = await usercollection.doc(firebaseuid).get() as DocumentSnapshot<Object?>; // 若需要获取实际查询结果,这里同样要加await和括号 var alldocs = await videoscollection.get();
额外建议
- 注意
firebaseuid可能为null的情况,建议增加非空判断避免后续报错:
if (firebaseuid != null) { DocumentSnapshot userdoc = await usercollection.doc(firebaseuid).get() as DocumentSnapshot<Object?>; var alldocs = await videoscollection.get(); // 后续业务逻辑 } else { // 处理用户未登录的场景 }
内容的提问来源于stack exchange,提问作者Prescott Anderson
相关产品推荐
相关产品推荐

