此应用无权使用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

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

  • SHA-1SHA-256 指纹一个一个地放置到您的 Firebase 应用程序中。

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

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

注意以下几点

  • 如果您使用模拟器进行电话 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 校验和:

    keytool -list -v -keystore KEYSTORE_PATH -alias ALIAS_NAMEsigningConfigs{
    
      debug{
    
        keyAlias 'your key alias'
    
        keyPassword 'your keypassword'
    
        storeFile file('keystore path')
    
        storePassword 'your storepassword'
    
      }
    
    }
    keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass androidkeytool -list -v -keystore"%USERPROFILE%\\.android\\debug.keystore" -alias androiddebugkey -storepass android -keypass androidkeytool -list -v –keystore [PATH]\\android\\app\\my-upload-key.keystore

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

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

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


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


    如果是 Linux 机器

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

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

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

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

    第 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):

    keytool -list -v -keystore KEYSTORE_PATH -alias ALIAS_NAMEsigningConfigs{
    
      debug{
    
        keyAlias 'your key alias'
    
        keyPassword 'your keypassword'
    
        storeFile file('keystore path')
    
        storePassword 'your storepassword'
    
      }
    
    }
    keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass androidkeytool -list -v -keystore"%USERPROFILE%\\.android\\debug.keystore" -alias androiddebugkey -storepass android -keypass androidkeytool -list -v –keystore [PATH]\\android\\app\\my-upload-key.keystore

    参考:看这里


    n
    n

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

    第 1 步:

    通过在终端中运行此命令获取最新的 SHA-1

    对于 Linux 或 macOS:

    keytool -list -v -keystore KEYSTORE_PATH -alias ALIAS_NAMEsigningConfigs{
    
      debug{
    
        keyAlias 'your key alias'
    
        keyPassword 'your keypassword'
    
        storeFile file('keystore path')
    
        storePassword 'your storepassword'
    
      }
    
    }
    keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass androidkeytool -list -v -keystore"%USERPROFILE%\\.android\\debug.keystore" -alias androiddebugkey -storepass android -keypass androidkeytool -list -v –keystore [PATH]\\android\\app\\my-upload-key.keystore

    对于 Windows:

    keytool -list -v -keystore KEYSTORE_PATH -alias ALIAS_NAMEsigningConfigs{
    
      debug{
    
        keyAlias 'your key alias'
    
        keyPassword 'your keypassword'
    
        storeFile file('keystore path')
    
        storePassword 'your storepassword'
    
      }
    
    }
    keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass androidkeytool -list -v -keystore"%USERPROFILE%\\.android\\debug.keystore" -alias androiddebugkey -storepass android -keypass androidkeytool -list -v –keystore [PATH]\\android\\app\\my-upload-key.keystore

    第 2 步:

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

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

    下一步:

    Firebase 控制台 > 您的项目 > 项目设置 > 添加指纹

    粘贴新的 SHA-1 指纹并保存。它现在可以正常工作了。


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

    像本文档一样生成 .keystore 文件

    https://facebook.github.io/react-native/docs/signed-apk-android

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

    keytool -list -v -keystore KEYSTORE_PATH -alias ALIAS_NAMEsigningConfigs{
    
      debug{
    
        keyAlias 'your key alias'
    
        keyPassword 'your keypassword'
    
        storeFile file('keystore path')
    
        storePassword 'your storepassword'
    
      }
    
    }
    keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass androidkeytool -list -v -keystore"%USERPROFILE%\\.android\\debug.keystore" -alias androiddebugkey -storepass android -keypass androidkeytool -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 文件。


相关推荐

  • Spring部署设置openshift

    Springdeploymentsettingsopenshift我有一个问题让我抓狂了三天。我根据OpenShift帐户上的教程部署了spring-eap6-quickstart代码。我已配置调试选项,并且已将Eclipse工作区与OpehShift服务器同步-服务器上的一切工作正常,但在Eclipse中出现无法消除的错误。我有这个错误:cvc-complex-type.2.4.a:Invali…
    2025-04-161
  • 检查Java中正则表达式中模式的第n次出现

    CheckfornthoccurrenceofpatterninregularexpressioninJava本问题已经有最佳答案,请猛点这里访问。我想使用Java正则表达式检查输入字符串中特定模式的第n次出现。你能建议怎么做吗?这应该可以工作:MatchResultfindNthOccurance(intn,Patternp,CharSequencesrc){Matcherm=p.matcher…
    2025-04-161
  • 如何让 JTable 停留在已编辑的单元格上

    HowtohaveJTablestayingontheeditedcell如果有人编辑JTable的单元格内容并按Enter,则内容会被修改并且表格选择会移动到下一行。是否可以禁止JTable在单元格编辑后转到下一行?原因是我的程序使用ListSelectionListener在单元格选择上同步了其他一些小部件,并且我不想在编辑当前单元格后选择下一行。Enter的默认绑定是名为selectNext…
    2025-04-161
  • Weblogic 12c 部署

    Weblogic12cdeploy我正在尝试将我的应用程序从Tomcat迁移到Weblogic12.2.1.3.0。我能够毫无错误地部署应用程序,但我遇到了与持久性提供程序相关的运行时错误。这是堆栈跟踪:javax.validation.ValidationException:CalltoTraversableResolver.isReachable()threwanexceptionatorg.…
    2025-04-161
  • Resteasy Content-Type 默认值

    ResteasyContent-Typedefaults我正在使用Resteasy编写一个可以返回JSON和XML的应用程序,但可以选择默认为XML。这是我的方法:@GET@Path("/content")@Produces({MediaType.APPLICATION_XML,MediaType.APPLICATION_JSON})publicStringcontentListRequestXm…
    2025-04-161
  • 代码不会停止运行,在 Java 中

    thecodedoesn'tstoprunning,inJava我正在用Java解决项目Euler中的问题10,即"Thesumoftheprimesbelow10is2+3+5+7=17.Findthesumofalltheprimesbelowtwomillion."我的代码是packageprojecteuler_1;importjava.math.BigInteger;importjava…
    2025-04-161
  • Out of memory java heap space

    Outofmemoryjavaheapspace我正在尝试将大量文件从服务器发送到多个客户端。当我尝试发送大小为700mb的文件时,它显示了"OutOfMemoryjavaheapspace"错误。我正在使用Netbeans7.1.2版本。我还在属性中尝试了VMoption。但仍然发生同样的错误。我认为阅读整个文件存在一些问题。下面的代码最多可用于300mb。请给我一些建议。提前致谢publicc…
    2025-04-161
  • Log4j 记录到共享日志文件

    Log4jLoggingtoaSharedLogFile有没有办法将log4j日志记录事件写入也被其他应用程序写入的日志文件。其他应用程序可以是非Java应用程序。有什么缺点?锁定问题?格式化?Log4j有一个SocketAppender,它将向服务发送事件,您可以自己实现或使用与Log4j捆绑的简单实现。它还支持syslogd和Windows事件日志,这对于尝试将日志输出与来自非Java应用程序…
    2025-04-161