当我尝试在模拟器上运行我的应用程序时,我收到此错误。
我做了什么:
事实上,当我在真实设备上运行应用程序时,它运行完美,我可以登录。
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.
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. Is app running on a physical device? ]
at com.google.android.gms.internal.jz.zzK(Unknown Source:239)
at com.google.android.gms.internal.kp.zza(Unknown Source:2)
at com.google.android.gms.internal.kq.run(Unknown Source:37)
at android.os.Handler.handleCallback(Handler.java:789)
at android.os.Handler.dispatchMessage(Handler.java:98)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6541)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
答案 0 :(得分:29)
为了防止滥用,firebase手机身份验证在模拟器中无法正常工作。
但是如果你想要它用于测试目的那么你应该添加一些 测试将在模拟器中运行的firebase控制台中的电话号码。
转到firebase控制台 - >身份验证 - >登录方法 - >打电话并检查"用于测试的电话号码(可选)"字段。
答案 1 :(得分:9)
好的,所以这是一个记录错误。 https://github.com/firebase/FirebaseUI-Android/issues/790 和 https://github.com/firebase/FirebaseUI-Android/issues/868
为了防止滥用,您无法在模拟器上使用手机验证。
docs在这里: https://firebase.google.com/docs/auth/android/phone-auth#before-you-begin
另请注意,电话号码登录需要物理设备,并且无法在模拟器上工作。
<强>更新强> 看看Prasanna Anbu的答案。
答案 2 :(得分:6)
您需要在firebase控制台中配置 SHA-1 。
您可以使用Android Studio工具轻松完成。
Tools -> Firebase
。Authentication
或RealtimeDatabase
。Connect to Firebase
并执行必要的操作。或强>
手动添加。看看这个..
答案 3 :(得分:4)
android studio中的sha1代:
从右侧面板中选择android studio中的Gradle
选择您的应用
在任务中-> android-> signingReport
双击signingReport。
您将在“ Gradle Console”中找到sha1指纹
在firebase控制台中添加此sha1指纹
答案 4 :(得分:2)
花了整整一天的时间弄清楚了问题所在。我找到了罪魁祸首!我们选择加入的是Google Play的应用签名。我们需要通过应用签名本身注册SHA-1。可以在Google Play控制台内部的“发布管理”>“应用签名”下找到该文件。它将具有两种类型的证书: 1. 上传证书:这是来自上传的密钥库中的证书信息。本地应用程序签名时需要与密钥库相同,因为Google Play会验证上传的应用程序是否与此签名证书匹配。
2. 应用程序签名证书:上传应用程序后,Google会使用此证书替换上传证书。这是新证书,将用于Play商店中已发布的应用。
有了这些信息,我才意识到我们尚未为已发布的应用程序所使用的应用程序签名证书注册SHA-1。因此,我在应用程序的Firebase>项目设置中添加了SHA-1指纹(也可以在需要时使用SHA-256)(添加指纹后不要忘记更新最新的配置文件)。
因此,添加您的SHA指纹后,您的Firebase SHA证书指纹将如下所示:
现在保存更改,然后返回到您的应用并再次对其进行测试,它将立即开始工作。
答案 5 :(得分:1)
对我来说,问题很简单,我正在模拟器上输入未保存为测试电话号码的电话(Firebase-> authentication->登录方法-> Phone->,然后在此处添加测试电话号码>
答案 6 :(得分:0)
生成SHA-1证书
更喜欢这个链接SHA-1 fingerprint of keystore certificate
。
答案 7 :(得分:0)
您的SHA1密钥未在Firebase控制台中注册。只需生成SHA密钥(如下图所示),从Android Studio终端复制SHA密钥并将其添加到Firebase控制台项目设置中即可:
还要确保您正在使用发布密钥库来生成此密钥
这会生成您的SHA1指纹,否则您的用户在电话身份验证时将面临SHA1错误。
希望对您有所帮助。
答案 8 :(得分:0)
下图所示,我在本机构建中也遇到了类似的问题。我按照下面提到的步骤解决了这个问题。
根据@adirzoari,将您的react本机项目打开到android studio中,然后:
对于Android Studio 2.2-结果将在“运行”控制台下可用,但使用突出显示的切换按钮。
答案 9 :(得分:0)
enter image description here 如何修复,请确认在Firebase控制台中配置了正确的软件包名称和sha1:
确保在应用程序的Firebase中添加SHA Klik设置->项目设置->常规->添加指纹(您的应用中为SHA 1)->保存
然后进行Klik身份验证->登录方法->电话->电话号码测试(可选)->保存
答案 10 :(得分:0)
添加SHA-1,但未提及SHA-1。就像您使用SHA-1一样:
SHA1:6G:49:58:57:A2:5C:2R:95:7D:32:19:4A:69:05:14:F2:31:0D:72:0A
仅将此内容添加到Firebase项目设置中
6G:49:58:57:A2:5C:2R:95:7D:32:19:4A:69:05:14:F2:31:0D:72:0A
更多信息
您可以通过gradle命令生成SHA密钥
./ gradlew signingReport
答案 11 :(得分:0)
转到您的 firebase 控制台 -> 身份验证 -> 登录方法 -> 电话。将带有验证码的随机数添加到enter image description here“测试电话号码(可选)”字段。