安卓 - Firebase身份验证失败

3

我正在开发一个简单的应用程序。 我按照下面的文档使用Firebase Auth。 https://firebase.google.com/docs/auth/android/firebaseui?authuser=0#top_of_page

在调试模式下,它可以正常工作。 在发布模式下,我创建了一个Apk文件,并直接安装它,也可以正常工作。

但是当我将其发布到PlayStore并下载时,它就失败了。

    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent) {
    super.onActivityResult(requestCode, resultCode, data)

    if (requestCode == RC_SIGN_IN) {
        val response = IdpResponse.fromResultIntent(data)

        if (resultCode == Activity.RESULT_OK) {
            val user = FirebaseAuth.getInstance().currentUser
            info("onActivityResult - ${user!!.email}")
            mPresenter.isAlreadyExistUser(user!!.email!!)
        } else {
            error("signIn failed - ${response!!.error}")  <-- Only when I downloaded it from playstore, it failed...
            response!!.error!!.printStackTrace()
        }
    }
}

W/System.err: com.firebase.ui.auth.FirebaseUiException: Code: 12500, message: 12500: 
W/System.err:     at com.firebase.ui.auth.data.remote.GoogleSignInHandler.onActivityResult(GoogleSignInHandler.java:106)
W/System.err:     at com.firebase.ui.auth.ui.idp.SingleSignInActivity.onActivityResult(SingleSignInActivity.java:121)

我尝试查找错误代码12500,但是找不到。

我在Gradle中执行了“signinReport”,并将调试和发布SHA-1添加到Firebase中。

然后我下载了“google-services.json”。

我再说一遍,在调试apk和发布apk中都可以正常工作。但是当我将正常工作的发布apk上传到PlayStore时,它失败了。

我真的真的不知道为什么...


这是相同的 keyStore 吗? - Ticherhaz FreePalestine
也请查看**这个链接**。 - Alex Mamo
1个回答

5
Google会验证您的签名,删除签名,并处理该捆绑包以生成基本APK、配置APK和动态特性APK(如果适用)。然后Google会重新签署APK。因此,您必须在Firebase控制台中为应用添加新的SHA-1签名。 打开Google Play控制台 选择发布管理>应用签名 enter image description here 使用提供的SHA-1用于Firebase。

你的意思是,我应该复制第三步的SHA-1并将其粘贴到Firebase控制台中吗?然后重新下载“google-services.json”并重新生成已签名的apk? - yoonhok
1
不,你只需要进入Firebase控制台并选择你的项目,然后打开项目设置,将此作为_SHA证书指纹_添加并保存即可。 - deepak raj
非常非常感谢你! - yoonhok

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接