Expo+Firebase谷歌登录报错DEVELOPER_ERROR求助
解决Expo+Firebase谷歌登录的DEVELOPER_ERROR问题
针对你遇到的com.google.android.gms.common.api.ApiException: DEVELOPER_ERROR错误,结合Expo+Firebase的环境特性,以下是具体排查和修复步骤:
确认Expo专属SHA-1指纹已添加到Firebase
Expo开发环境使用官方默认签名,而非本地debug.keystore的签名。运行以下命令获取Expo项目的SHA-1和SHA-256指纹:expo fetch:android:hashes将输出的两个指纹全部添加到Firebase项目设置(项目设置→常规→应用→添加指纹)中,替换之前用本地keytool获取的指纹。
检查Google OAuth客户端ID配置
进入Firebase关联的Google Cloud Console,导航至「API和服务→凭据」:- 确保存在Android类型的OAuth客户端ID,其包名与
app.json中android.package字段完全一致,SHA-1使用上述Expo获取的指纹; - 确保存在Web应用类型的OAuth客户端ID,后续代码初始化会用到这个ID。
- 确保存在Android类型的OAuth客户端ID,其包名与
更新google-services.json文件
在Firebase项目设置中重新下载最新的google-services.json文件,替换项目中的旧文件,确保配置同步最新的指纹和客户端ID。补充GoogleSignin初始化配置
你的代码缺少GoogleSignin的初始化步骤,需添加以下配置(使用Web应用类型的OAuth客户端ID):import * as GoogleSignin from '@react-native-google-signin/google-signin'; // 在组件初始化或App启动时调用 GoogleSignin.configure({ webClientId: '你的Web应用OAuth客户端ID', offlineAccess: false, });没有正确配置
webClientId会导致无法获取有效的idToken,进而触发DEVELOPER_ERROR。清除缓存并重启项目
运行以下命令清除Expo缓存,避免旧配置残留:expo r -c之后重新启动项目测试登录功能。
内容的提问来源于stack exchange,提问作者Matteo Fierquin
相关产品推荐
相关产品推荐

