Firebase auth工作正常,调试版本突然开始失败,没有任何代码更改,记录下面的消息
D / PhoneAuthActivity(7392):signInWithCredential:failed:com.google.firebase.auth.FirebaseAuthException:此应用无权使用Firebase身份验证。请确认在Firebase控制台中配置了正确的软件包名称和SHA-1。 [应用验证失败]。
成功登录和失败之间唯一值得注意的行动是android studio升级。
答案 0 :(得分:26)
更新Android Studio时,用于签署调试应用程序的调试密钥可能已更改。只需在firebase控制台中添加调试密钥的新SHA-1校验和。
最简单的方法是从
连接/同步到firebase工具>&火力地堡GT;认证>连结>同步
如果要手动或发布密钥库,首先使用以下命令生成SHA-1校验和:
keytool -list -v -keystore KEYSTORE_PATH -alias ALIAS_NAME
然后复制SHA-1校验和并转到:
Firebase控制台&gt;你的项目&gt; <应用程序的设置>添加指纹
答案 1 :(得分:20)
如果您使用仿真器进行电话OTP验证,则该验证将不起作用,因为它没有SIM卡。因此,请尝试将其安装到您的手机上(使用sim卡),然后检查错误是否仍然存在。
答案 2 :(得分:10)
已启用应用程序签名的应用程序的简单解决方案。
Play商店控制台>您的项目>版本管理>应用签名
Firebase控制台>您的项目>应用程序设置>添加指纹
keystore.
答案 3 :(得分:7)
对于Linux计算机
第1步:转到文件系统中项目的物理文件目录
第2步:转到您的项目> android>
第3步:右键单击并在此目录中打开一个新终端
第4步:运行命令“ gradlew signingReport”
第5步:复制您的SHA-1密钥或SHA-56密钥
步骤6:转到Firebase控制台>您的项目>项目设置>添加Fingerpring
第7步:粘贴SHA-1密钥或SHA-56密钥并保存。
现在,你很好。
谢谢。
答案 4 :(得分:3)
如果您使用的是Google内部应用共享,请注意,Google会根据here使用完全不同的证书自动对您的版本进行签名,您需要查找为应用程序自动提供的签名证书信息由Google建立。
要查找证书;
答案 5 :(得分:2)
好吧,我刚刚发现了问题。 如果您使用的是Play Store应用签名,则来自分布式应用的SHA1将不同于您在本地使用的SHA1。确保将Play控制台中的SHA1密钥添加到Firebase控制台中的应用中。
答案 6 :(得分:2)
这花了我两天时间。我尝试了纳宾·班达里(Nabin Bhandari)接受的解决方案,但这对我不起作用。然后终于设法做到了。
现在使用生成SHA-1密钥(由Navin建议):
keytool -list -v -keystore KEYSTORE_PATH -alias ALIAS_NAME
使用adb install app-debug.apk在设备中安装应用程序。现在该应用程序可以正常工作了。
开发/调试提示: 在使用“运行”时安装签名的APK。
当您再次单击运行时,已签名的应用程序将被覆盖,您可能会再次遇到问题。因此,单击“运行”应用程序时,需要安装签名的APK。
将这些值添加到您的.gradle文件(Module:app):
signingConfigs{
debug{
keyAlias 'your key alias'
keyPassword 'your keypassword'
storeFile file('keystore path')
storePassword 'your storepassword'
}
}
参考:see here
答案 7 :(得分:2)
在firebase中更新您的应用程序Fingerprint对我有用。
第1步: 通过在终端中运行此命令来获取最新的SHA-1 对于Linux或macOS:
keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android
对于Windows:
keytool -list -v -keystore "%USERPROFILE%\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android
第2步: 转到Firebase控制台并删除最近添加的指纹
Firebase控制台>您的项目>项目设置>删除指纹
下一个: Firebase控制台>您的项目>项目设置>添加指纹 粘贴新的SHA-1指纹并保存。现在它将正常工作。
答案 8 :(得分:2)
尽管 documentation 中的第 4 步要求单独添加 SHA-1
,
只有当我添加两个键 SHA-1
和 SHA-256
时,它才对我有用。
参考 - this video 的前 5 分钟解决了这个错误,我已经面临了超过 5 天。
答案 9 :(得分:1)
之前,我们可以在我们发布的应用中实现用户登录,只需使用我们应用的 sha-1 证书,可以由 android studio 生成。但是现在,我们需要将 Play 控制台的应用签名证书中的 sha-1 证书添加到我们的 Firebase 项目设置中。
上面的步骤已经被我们的伙伴回答了。
答案 10 :(得分:1)
我迟到了,但对别人有帮助。
当您使用生成签名的 apk 或可能处于调试模式时,您忘记在 firebase 控制台中保存 SHA-1 和 SHA-256 时会出现此问题。
The solution for generate signed apk is: Your app must be available on your google
play console (Google play store). Copy SHA-1 available in google play console > App
Signing and save in firebase console.
答案 11 :(得分:1)
最近发生的错误
通过了一个安全网令牌,但是没有注册匹配的SHA-256 在Firebase控制台中。请确保此应用程序的 packageName / SHA256对在Firebase控制台中注册。
解决方案是:
还在Firebase控制台的项目设置中添加SHA256
。
答案 12 :(得分:1)
我发布得晚了,但这是我发现的一个非常简单的技巧Download this Key Explorer 并浏览您的App签名密钥(.jks),您还可以获取SHA-1和其他密钥。 现在,从此处复制您的SHA-1并将其添加到Firebase控制台。 步骤:Firebase控制台>您的项目>项目设置>添加指纹将您的SHA-1粘贴并保存。
此错误的原因是,当我们进行debug-apk测试时,它使用本地系统SHA(我们已经通过firebase控制台进行了更新),但是当它在Release-build和Live商店上发布时,它使用的是SHA SigningKey(.jks)。 因此,我们必须在控制台上更新两个指纹。
答案 13 :(得分:1)
我遇到了相同的问题,请按照以下步骤解决
生成本文档中的.keystore文件 https://facebook.github.io/react-native/docs/signed-apk-android
通过此命令生成的SHA-1密钥
keytool -list -v –keystore [PATH]\android\app\my-upload-key.keystore
然后将SHA1密钥复制到证书指纹下,并将其添加到firebase应用程序设置->“常规”标签->您的应用程序部分->“ SHA证书指纹”
答案 14 :(得分:0)
功能不能在模拟器上工作,即使您的手机号码在物理设备中 您必须使用物理设备才能使用电话身份验证... 如果您完美地设置了SHA1密钥并仍然遇到此异常,则必须解决您的问题
答案 15 :(得分:0)
我认为这是最简单的解决方案
从Play商店控制台的App签名中查看SHA-1证书指纹
答案 16 :(得分:0)
我已经有同样的问题好几天了。在尝试了所有可能的解决方案后,我发现我的 firebase-auth 依赖版本是 (19.3.1),当我将其更改为最新版本时,即(现在是 20.0.3)它工作正常。
答案 17 :(得分:0)
查看此线程: How to get the SHA-1 fingerprint certificate in Android Studio for debug mode?
现在,您将了解如何轻松获取应用程序的sha-1
键(无需使用-keytool
命令并将id添加到Firebase控制台。)然后,您必须更新自己的google-services.json
文件项目。