关于java:此应用无权使用Firebase身份验证。请验证在Firebase控制台中配置了正确的包名和SHA-1

This app is not authorized to use Firebase Authentication.Please verify that the correct package name and SHA-1 are configured in the Firebase Console

Firebase 身份验证工作正常,调试构建突然开始失败,没有任何代码更改,记录以下消息

D/PhoneAuthActivity( 7392): signInWithCredential:failure:com.google.firebase.auth.FirebaseAuthException: This app is not authorized to use Firebase Authentication. Please verifythat the correct package name and SHA-1 are configured in the Firebase Console. [ App validation failed ].

成功登录和失败之间唯一值得注意的操作是 android studio 升级。


更新(2021 年 10 月 11 日):

  • 从 Play 商店控制台中找到 SHA-1SHA-256 BOTH certificateS 指纹。

Play store Console > Your project > Release > Setup > App integrity

SHA1

注意以下几点

  • 如果您使用模拟器进行电话 OTP 验证,则它不会工作,因为它没有 sim。因此,请尝试将其安装在您的手机上(使用 sim 卡)。
  • 确保您使用的是最新/更新的 google-services.json。
  • 正确遵循启用应用验证步骤。并且 Android 设备验证已启用。
  • 确保在启用 Android 设备验证时从下拉列表中选择了正确的项目。
  • 要在 Firebase 项目中添加的 SHA-1SHA-256 指纹。
  • 完成所有工作后,请确保您使用的是最新/更新的 google-services.json 文件。

  • 当您更新 Android Studio 时,用于签署调试应用程序的调试密钥可能已更改。只需在 firebase 控制台中添加调试密钥的新 SHA-1 校验和即可。

    最简单的方法是从

    连接/同步到 firebase

    Tools>Firebase>Authentication>Connect>Sync

    如果您想手动执行或发布密钥库,请首先使用以下命令生成 SHA-1 校验和:

    1
    keytool -list -v -keystore KEYSTORE_PATH -alias ALIAS_NAME

    然后复制 SHA-1 校验和并转到:

    Firebase Console > Your project > Settings of the app > Add Fingerprint

    有关更多信息,请阅读本指南:验证您的客户 |适用于 Android 的 Google API


    如果您使用模拟器进行电话 OTP 验证,则它不会工作,因为它没有 sim。因此,请尝试将其安装到您的手机(使用 sim 卡)并检查错误是否仍然存在。


    如果是 Linux 机器

    第 1 步:转到文件系统中项目的物理文件目录

    第 2 步:转到您的项目> android>

    第三步:点击右键,在这个目录下打开一个新的终端

    As

    第 4 步:运行命令 'gradlew signingReport'

    第 5 步:复制您的 SHA-1 密钥或 SHA-56 密钥

    第 6 步:转到 Firebase 控制台>您的项目>项目设置>添加指纹

    第 7 步:粘贴您的 SHA-1 密钥或 SHA-56 密钥并保存。

    现在,你可以走了。

    谢谢。


    好的,我刚刚发现了问题..
    如果您使用的是 Play 商店应用签名,那么您分发的应用的 SHA1 将与您在本地使用的不同。确保将 SHA1 密钥从 Play 控制台添加到 Firebase 控制台中的应用。


    如果您使用的是 Google 内部应用共享,请注意,Google 会自动使用与此处所述完全不同的证书对您的构建进行签名,您需要找到由 Google 自动为您的应用构建提供的签名证书信息。

    查找证书;

  • 登录您的 Play 管理中心。
  • 选择您的应用。
  • 在左侧菜单中,选择开发工具 > 内部应用共享。
  • 选择"应用程序证书"选项卡,然后将 SHA-1 复制到您的 Firebase 控制台。

  • n


    这花了我两天时间。我尝试了接受的解决方案(由 Nabin Bhandari 提供),但这对我不起作用。然后终于设法做到了如下。

  • 转到"构建> 生成签名包/APK"。

  • 如果您想将应用上传到 Play Store,请选择"Android App Bundle",否则您可以使用"APK"。然后下一步。

  • 现在在"密钥存储路径"中单击"新建"。在对话框中输入详细信息。当您单击"确定"时,您将生成密钥文件。

  • 输入密钥路径、密码等

  • 根据需要选择"调试"或"发布"。在此之后,您的签名 apk 会在 [project Directory]\\\\app\\\\debug.

    中生成

  • 现在使用(由 Nabin 建议)生成 SHA-1 密钥:

    keytool -list -v -keystore KEYSTORE_PATH -alias ALIAS_NAME

  • 使用 adb install app-debug.apk 在设备中安装应用程序。现在该应用程序可以运行了。

  • 开发/调试提示:使用 Run 时安装签名的 APK。
    当您再次单击运行时,已签名的应用程序将被覆盖,您可能会再次遇到问题。所以当点击运行'app'时需要安装签名的apk。

    将这些值添加到您的 .gradle 文件 (Module:app):

    1
    2
    3
    4
    5
    6
    7
    8
    signingConfigs{
        debug{
            keyAlias 'your key alias'
            keyPassword 'your keypassword'
            storeFile file('keystore path')
            storePassword 'your storepassword'
        }
    }

    参考:看这里


    n


    n


    在 Firebase 中更新您的应用指纹,它对我有用。

    第 1 步:
    通过在终端中运行此命令获取最新的 SHA-1
    对于 Linux 或 macOS:

    1
    keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android

    对于 Windows:

    1
    keytool -list -v -keystore"%USERPROFILE%\\.android\\debug.keystore" -alias androiddebugkey -storepass android -keypass android

    第 2 步:
    转到 Firebase 控制台并删除最近添加的指纹

    Firebase 控制台 > 您的项目 > 项目设置 > 删除指纹

    下一步:
    Firebase 控制台 > 您的项目 > 项目设置 > 添加指纹
    粘贴新的 SHA-1 指纹并保存。它现在可以正常工作了。


    我也遇到了同样的问题,解决方法如下

    像本文档一样生成 .keystore 文件
    https://facebook.github.io/react-native/docs/signed-apk-android

    通过此命令生成 SHA-1 密钥

    1
    keytool -list -v –keystore [PATH]\\android\\app\\my-upload-key.keystore

    并复制证书指纹下的 SHA1 密钥并将其添加到 firebase 应用程序设置->常规选项卡->您的应用程序部分->SHA 证书指纹


    我发布晚了,但这是我发现的一个非常简单的技巧 下载此密钥资源管理器
    并探索您的应用签名密钥(.jks),您将能够获得 SHA-1


    n


    n


    n


    n


    n


    n


    看看这个线程:
    调试模式下如何在 Android Studio 中获取 SHA-1 指纹证书?

    现在您将如何轻松获取应用程序的 SHA-1 键(无需 -keytool 命令)并将 id 添加到 Firebase 控制台。然后您必须更新项目中的 google-services.json 文件。