此应用无权使用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-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
注意以下几点
- 如果您使用模拟器进行电话 OTP 验证,则它不会工作,因为它没有 sim。因此,请尝试将其安装在您的手机上(使用 sim 卡)。
- 确保您使用的是最新/更新的 google-services.json。
- 正确遵循启用应用验证步骤。并且 Android 设备验证已启用。
- 确保在启用 Android 设备验证时从下拉列表中选择了正确的项目。
- 要在 Firebase 项目中添加的 SHA-1 和 SHA-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>
第三步:点击右键,在这个目录下打开一个新的终端
第 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 密钥:
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 文件。