Firebase 电话身份验证上的 APP 验证错误

时间:2021-03-19 05:15:35

标签: firebase

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

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

Screen Shot

3 个答案:

答案 0 :(得分:0)

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

使用此命令生成发布密钥:keytool -list -v -keystore "your jks 文件路径" -alias "key name"

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

您还可以从 google play 控制台获取 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 电话身份验证在模拟器中不起作用,因此请在真实设备上进行测试)

android studio terminal goole console app signing key

答案 1 :(得分:0)

问题是您已为调试添加了 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()

            }
        }
}

答案 2 :(得分:0)

我已经完成了这些步骤,然后在从 Play 商店下载后就可以工作了:

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