如何在Android端调用Java/Kotlin开发的GCP Cloud Functions并解决NOT_FOUND报错
排查解决步骤
- 确认函数类型匹配度
你当前部署的是标准GCP HTTP Cloud Function,但Firebase SDK的getHttpsCallable方法仅支持调用Firebase可调用函数,二者内置协议完全不同。可调用函数有专属的请求封装、身份校验逻辑,普通HTTP函数无法被该方法识别,这是触发NOT_FOUND错误的最常见原因。
如果你要继续使用当前的普通HTTP函数,Android端直接用OkHttp、Retrofit等HTTP客户端请求函数的公开HTTP端点即可。如果要适配Firebase可调用方式,需要将云函数重构为Firebase可调用函数的标准格式。 - 核对函数部署信息
如果你确认已经部署的是Firebase可调用函数,请核对以下信息:- 部署时配置的函数名称是否和
getHttpsCallable传入的WinnerDeclaration完全一致,注意函数名称大小写敏感 - 如果函数部署区域不是默认的
us-central1,Android端初始化时需要指定对应区域:private val cloudFunctions = FirebaseFunctions.getInstance("你的实际部署区域ID")
- 部署时配置的函数名称是否和
- 检查函数运行状态
登陆GCP Cloud Functions控制台,确认目标函数的状态为运行中,触发权限配置为允许对应身份的调用(无身份验证场景需要开放未认证调用权限),可先通过Postman、浏览器访问函数触发URL确认可以正常响应。 - 校验项目配置一致性
确认Android端使用的google-services.json文件和部署云函数的Firebase项目属于同一项目,避免跨项目调用导致找不到资源。
内容的提问来源于stack exchange,提问作者Yonit Chauhan
相关产品推荐
相关产品推荐

