FirebaseAuth授权失败求助:已核对SHA-1与包名仍报错
我之前也碰到过一模一样的问题,折腾了好一阵才搞定,给你列几个亲测有效的排查和解决步骤:
先确认Firebase控制台的项目与应用完全匹配
别只盯着包名和SHA-1,先检查自己是不是切错了Firebase项目——有时候不小心选中了其他项目,怎么核对都白搭。如果是用Android Studio的Firebase助手连的项目,再重新同步一次:Tools > Firebase > Authentication > Connect to Firebase,跟着流程走一遍,确保拿到的是最新的配置文件。把所有构建变体的SHA-1都加到Firebase控制台
很多人只加了debug环境的SHA-1,但如果是用release构建测试,或者有自定义flavor,一定要把对应变体的SHA-1也加上。获取所有变体SHA-1的方法很简单,在Android Studio终端运行:./gradlew signingReport把输出里所有的SHA-1(包括debug、release、各flavor的)都复制到Firebase控制台的应用设置里。
刷新配置文件并清理项目缓存
有时候Firebase后台的缓存会导致配置不生效,先删掉项目里旧的google-services.json,去Firebase控制台重新下载最新的替换到app模块根目录。替换完后,一定要先Clean Project再Rebuild Project,别直接Run,不然旧配置可能还留在缓存里。检查设备的Google Play服务版本
Firebase Auth依赖Google Play服务,要是设备上的版本太旧也会触发验证失败。去设备的应用商店把Google Play服务更到最新,重启设备后再测试。排除应用篡改或抓包工具的影响
如果设备上装了Charles、Fiddler这类抓包工具,或者应用被第三方工具重新签名过,都会导致Firebase的验证逻辑失效。关掉抓包工具,确保应用是用你配置的签名密钥构建的。确认Firebase Auth的登录方式已启用
别漏了这个基础检查!去Firebase控制台的Authentication模块,确认你要使用的登录方式(比如邮箱密码、Google登录等)是已启用状态,要是没开也会报这个错误。
如果以上步骤都试过还是不行,建议把Firebase控制台的对应应用删除,重新创建一个新应用再配置包名和SHA-1——有时候旧应用的配置会有莫名其妙的遗留问题,重建反而能快速解决。
内容的提问来源于stack exchange,提问作者manmeet singh

