Flutter调用Firebase Cloud Functions报权限错误的配置与排查
配置过程
数月前开始学习Flutter,目前正尝试将现有Firebase项目集成到全新的Flutter项目中。已在Firebase控制台创建新应用,遵循Google官方配置指引完成操作,导入了所需依赖库,以Flutter默认示例项目作为测试环境,设置按钮点击时触发_doFirebaseStuff()方法,代码如下:
Future<void> _doFirebaseStuff() async { HttpsCallable callable = FirebaseFunctions.instance.httpsCallable("loadNews"); var data = await callable.call(); // 该行触发错误 print(data); }
问题现象
预期行为是成功调用Cloud Function并返回对应数据,但实际运行时抛出如下错误:FirebaseFunctionsException ([firebase_functions/1] The operation couldn’t be completed. Operation not permitted。已查阅Flutter与Firebase官方文档,也排查了堆栈跟踪对应的源码,均未找到相关解决方案。
已做排查
初步怀疑问题由以下原因导致,但均未证实:
- Firebase配置不正确:项目中未找到Google-Services.plist文件
- AppCheck拦截导致异常
- 排除该原因的依据如下:
- 曾测试过自认为正确的AppCheck接入方案,问题复现
- 未出现
Failed Precondition: The request must come from a verified app报错提示 - Cloud Function日志中无对应调用记录,说明请求未发出就直接失败,并非被服务端拦截
- 排除该原因的依据如下:
- 云控制台IAM权限配置错误
- 排除该原因的依据如下:
- 同一套Cloud Functions可在其他应用中正常调用
- 云控制台日志中无任何对应调用记录
- 排除该原因的依据如下:
不排除存在其他未考虑到的问题诱因。
运行环境
- 开发语言:Dart
- Flutter版本:3.0.2
- 目标平台:MacOS
- pubspec.yaml依赖版本:
- cloud_functions: ^3.2.17
- firebase_core: ^1.18.0
已尝试多日调试仍未解决问题,恳请各位提供相关解决思路。
内容的提问来源于stack exchange,提问作者benjixinator
相关产品推荐
相关产品推荐

