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-1 和SHA-256 BOTH certificateS 指纹。
Play store Console > Your project > Release > Setup > App integrity
- 将
SHA-1 和SHA-256 指纹一个一个地放置到您的 Firebase 应用程序中。
Firebase Console > Your project > Settings of the app > Add Fingerprint
当您更新 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>
第三步:点击右键,在这个目录下打开一个新的终端
第 4 步:运行命令 ‘gradlew signingReport’
第 5 步:复制您的 SHA-1 密钥或 SHA-56 密钥
第 6 步:转到 Firebase 控制台>您的项目>项目设置>添加指纹
第 7 步:粘贴您的 SHA-1 密钥或 SHA-56 密钥并保存。
现在,你可以走了。
谢谢。
好的,我刚刚发现了问题..
如果您使用的是 Play 商店应用签名,那么您分发的应用的 SHA1 将与您在本地使用的不同。确保将 SHA1 密钥从 Play 控制台添加到 Firebase 控制台中的应用。
如果您使用的是 Google 内部应用共享,请注意,Google 会自动使用与此处所述完全不同的证书对您的构建进行签名,您需要找到由 Google 自动为您的应用构建提供的签名证书信息。
查找证书;
n
这花了我两天时间。我尝试了接受的解决方案(由 Nabin Bhandari 提供),但这对我不起作用。然后终于设法做到了如下。
转到”构建> 生成签名包/APK”。
如果您想将应用上传到 Play Store,请选择”Android App Bundle”,否则您可以使用”APK”。然后下一步。
现在在”密钥存储路径”中单击”新建”。在对话框中输入详细信息。当您单击”确定”时,您将生成密钥文件。
输入密钥路径、密码等
根据需要选择”调试”或”发布”。在此之后,您的签名 apk 会在 [project Directory]////app////debug.
中生成
现在使用(由 Nabin 建议)生成 SHA-1 密钥:
使用 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 指纹证书?
现在您将如何轻松获取应用程序的