Flutter Firebase谷歌登录报错:Storagerelay URI不支持NATIVE_ANDROID类型
解决Flutter Firebase谷歌登录「Storagerelay URI is not allowed for 'NATIVE_ANDROID' client type」错误
这个错误的核心问题是Firebase关联的GCP凭据中,Android客户端配置了仅适用于Web类型的重定向URI,导致谷歌OAuth服务拒绝了Native Android客户端的登录请求。以下是具体修复步骤:
- 打开Firebase控制台,进入你的
medicinal_plant_app项目,依次进入Authentication → 登录方法 → Google,确认谷歌登录已启用。 - 跳转至关联的GCP控制台,进入API和服务 → 凭据页面,找到类型为「Android」的客户端ID并点击进入详情。
- 在「授权重定向URI」列表中,删除所有包含
storagerelay的URI(这类URI属于Web客户端专属,不适用于Native Android)。 - 验证Android客户端的SHA-1指纹配置:
- 调试环境下,执行命令获取SHA-1:
keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android - 回到Firebase控制台的项目设置 → 应用 → Android应用,确认已添加正确的调试和发布环境SHA-1指纹。
- 调试环境下,执行命令获取SHA-1:
- 重新下载
google-services.json文件,替换Flutter项目android/app目录下的旧文件。 - 清理项目缓存并重新构建:执行
flutter clean,再运行flutter run。
额外排查项
- 检查
pubspec.yaml中firebase_auth、google_sign_in的依赖版本,确保与Firebase SDK版本兼容,避免版本冲突引发的配置异常。 - 查看AndroidManifest.xml,确认仅保留Native谷歌登录所需的权限和元数据,移除多余的Web相关配置项。
内容的提问来源于stack exchange,提问作者Mehanth
相关产品推荐
相关产品推荐

