【问题标题】:APP Validation Error On Firebase Phone AuthenticationFirebase 电话身份验证上的 APP 验证错误
【发布时间】:2026-01-01 09:10:02
【问题描述】:

我已经制作了我的应用程序并将其发布到 google play 商店。我使用 Firebase 电话身份验证来验证成员,在我将它发布到 Play 商店之前它运行良好,但是当我从 google play 下载它时,它会抛出一个错误:
(此应用无权使用 Firebase身份验证。请验证在 Firebase 控制台中配置了正确的包名称和 SHA-1。[应用验证失败])

我还在 google play 控制台中添加了我的应用程序的 SHA 1、SHA 256 和上传 SHA 1、SHA 256 的 App Signing,但不幸的是,它不起作用。

【问题讨论】:

    标签: firebase


    【解决方案1】:

    问题是您已经为调试添加了 SHA1 和 SHA256,并在将其上传到 Play 商店之前发布了它的工作原理。

    解决方案

    联系拥有 Google Play 商店帐户的人。 从他那里获取 Play 商店的 SHA1 和 SHA256 并添加到 Firebase 控制台。

    验证以下内容

    1- 包名

    2- 沙 1 和沙 256

    3- 将 Safetynet 代码添加到您的应用中

        fun request_safetynet(){
        SafetyNet.getClient(this)
            .enableVerifyApps()
            .addOnCompleteListener { task ->
                if (task.isSuccessful) {
                    if (task.result.isVerifyAppsEnabled) {
                        Log.e("SAFETYNET", "The user gave consent to enable the Verify Apps feature.")
                       // Toast.makeText(this,"user gave consent",Toast.LENGTH_SHORT).show()
                    } else {
                        Log.e(
                            "SAFETYNET",
                            "The user didn't give consent to enable the Verify Apps feature."
    
                        )
                      //  Toast.makeText(this,"user didn't give consent",Toast.LENGTH_SHORT).show()
    
                    }
                } else {
                    Log.e("SAFETYNET", "A general error occurred.")
                   // Toast.makeText(this,"general error occurred",Toast.LENGTH_SHORT).show()
    
                }
            }
    
    
    
    }
    
    fun safetynet_Verify_enabled(){
        SafetyNet.getClient(this)
            .isVerifyAppsEnabled
            .addOnCompleteListener { task ->
                if (task.isSuccessful) {
                    if (task.result.isVerifyAppsEnabled) {
                        Log.e("SAFETYNET", "The Verify Apps feature is enabled.")
                        //Toast.makeText(this,"Verify Apps feature is enabled.",Toast.LENGTH_SHORT).show()
    
                    } else {
                        Log.e("SAFETYNET", "The Verify Apps feature is disabled.")
                       // Toast.makeText(this,"The Verify Apps feature is disabled.",Toast.LENGTH_SHORT).show()
    
                    }
                } else {
                    Log.e("SAFETYNET", "A general error occurred.")
                    //Toast.makeText(this,"safetynet_Verify_enabled : general error occurred",Toast.LENGTH_SHORT).show()
    
                }
            }
    }
    

    【讨论】:

    • 我是 Google Play 商店帐户的所有者。我从以下位置获得了 SHA 1 和 SHA 256:项目 -> 设置 -> 应用程序完整性 -> 应用程序签名密钥证书和上传密钥证书并添加到 Firebase。但确实有效,它说应用验证失败
    • 不,我会这样做,并再次评论它,谢谢。
    • 在从游戏控制台添加 sha1 和 sha256 后也更新 json 文件..!
    • 移除 Gradle 中所有多余的依赖。
    【解决方案2】:

    如果调试 apk 的 Firebase 电话身份验证运行成功,但发布 apk 未成功运行,则您的密钥存在问题。

    使用此命令生成发布密钥:keytool -list -v -keystore "your jks file path" -alias "key name"

    添加 jks 路径和键名并在 android studio 终端中运行此命令。

    您还可以从 google play console 获取 SHA1 和 SHA-256。转到 Play 商店控制台 > 您的项目 > 发布 > 设置 > 应用签名。

    1. 复制 SHA1 和 SHA-256 密钥并粘贴到 Firebase 控制台中。
    2. 如果您的 firebase-auth 版本高于 20.0.0,那么您还需要在项目中配置安全网。欲了解更多信息,请查看this
    3. 确保已启用电话验证。转到 Firebase 控制台 -> 身份验证 -> 登录方法。
    4. 添加密钥后,下载更新的 google-services.json 并添加到您的项目中。
    5. 清理项目,然后重建项目。
    6. 再次测试您的应用(为了防止滥用 Firebase 电话身份验证在模拟器中不起作用,因此请在真机上测试)

    【讨论】:

    • 我已经这样做了,得到了 sha1 和 sha256 并将其放在 firebase 上,但我得到了同样的错误。我已经在我的帖子中添加了屏幕截图,请检查它。谢谢
    • fire base auth version is: implementation 'com.google.firebase:firebase-auth:18.1.0'
    • 你是在真机还是模拟器上测试?请重新检查 firebase 控制台中的两个键。
    • 我正在真实设备上进行测试。我已经检查了所有按键超过 5 次。还从 firebase 中删除了应用程序并再次添加并更改了 google.json 文件但得到了同样的错误
    • 请检查您是否在 Firebase 控制台中启用了电话身份验证。
    【解决方案3】:

    我已经完成了这些步骤,然后在从 play store 下载后就可以使用了:

    在 firebase 控制台中,我使用默认名称 Google Play Console Developer 创建了一个新项目...并从应用程序添加 sha1 和 sha256 并将 google.json 文件复制到应用程序,然后: Play 管理中心 -> 设置 -> 开发者帐户 -> API 访问权限: 然后我将创建的 Firebase 项目 Google Play Console Developer... 与谷歌链接,之后在打开的页面上我添加了凭据。 之后一切正常。

    【讨论】: