You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity中Firebase授权SignInWithEmailAndPasswordAsync在API密钥限安卓后失败求助

保留API密钥限制下的Firebase邮箱密码认证解决方案

1. 核对包名与SHA-1的准确性

  • 确认Firebase控制台填写的SHA-1是你当前打包用的密钥库(发布/调试)的真实值,别搞混调试和发布密钥。
  • 包名必须和Unity Player Settings里的Bundle Identifier完全一致,大小写、符号都不能差。
  • 验证方式:导出APK后用命令 apksigner verify --print-certs 你的APK文件.apk 查看APK的SHA-1和包名,和控制台的配置逐一比对。

2. 为API密钥添加Firebase Auth所需的API权限

在Firebase控制台的API密钥设置页,找到「API限制」模块,添加以下两个API:

  • Firebase Authentication API
  • Identity Toolkit API
    这俩是邮箱密码认证的核心依赖,没加的话会被限制拦截。

3. 替换最新的google-services.json

修改API密钥限制后,必须重新下载Firebase控制台的google-services.json,替换Unity项目 Assets/Plugins/Android 下的旧文件,旧文件的缓存配置会导致请求不匹配。

4. 检查Unity打包的密钥配置

  • 在Player Settings的Publishing Settings里,确认已勾选Custom Keystore,且密钥库文件、密码、密钥别名都配置正确。
  • 调试阶段如果用Unity默认调试密钥,要把调试密钥的SHA-1也添加到Firebase控制台的安卓应用配置中(支持多个SHA-1)。

5. 捕获错误日志定位问题

在代码里捕获具体的认证错误,方便精准排查:

try
{
    var authResult = await FirebaseAuth.DefaultInstance.SignInWithEmailAndPasswordAsync(email, password);
}
catch (FirebaseException ex)
{
    Debug.LogError($"认证失败:{ex.Message},错误码:{ex.ErrorCode}");
}

比如ApiNotEnabled对应API未开启,AppNotAuthorized对应包名/SHA-1不匹配,InvalidApiKey则是密钥配置问题。

内容的提问来源于stack exchange,提问作者JayakumarSivasankar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 00:12:38