我完全陷入了让 Firebase 身份验证在我的模拟器上本地工作的任务。
它曾经可以工作,但由于环境变化我必须重新配置它。
到目前为止,我已经检查了五次Firebase项目中的SHA1和SHA256值是否正确。
SHA1: 90:3c:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx:84 
SHA256: 32:c2:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx:c1
从
google-service.json
中,我取与 client_id
相对应的 certificate_hash
:
{
"client_id": "12345667890-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.apps.googleusercontent.com",
"client_type": 1,
"android_info": {
"package_name": "com.example.development",
"certificate_hash": "903cxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx84"
}
},
在我的反应本机应用程序中,我使用硬编码值:
useEffect(() => {
GoogleSignin.configure({
scopes: ['email'],
webClientId: '12345667890-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.apps.googleusercontent.com',
});
}, []);
但我不断得到这个
DEVELOPER_ERROR
,没有任何关于这里实际问题所在的额外信息。
我在某处感到红色,我们不应该采用这个客户端ID,相反我应该采用“网络”客户端ID(
client_type: 3
):
{
"client_id": "1234567890-yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy.apps.googleusercontent.com",
"client_type": 3
}
但这并没有改变任何事情。
对于我的本地构建,我正在运行
keytool -list -v -alias androiddebugkey -keystore ~/.android/debug.keystore
这给了我与跑步相同的结果
cd android/ && ./gradlew signingReport
我最近也遇到了同样的问题。最后我发现在 android/app 文件夹中的 build.gradle 文件中,signingConfigs -> debug 下的 keystore 文件与我正在使用的 google-services.json 不匹配。