"此应用未授权在模拟器中使用Firebase身份验证"

Raz*_*ung 22 android firebase firebase-authentication firebaseui

当我尝试在模拟器上运行我的应用程序时,我收到此错误.

我做了什么:

  1. 我正在使用Firebase-UI并运行Android O.
  2. 我更新了Play商店.
  3. 我已将所有SHA-1代码添加到Firebase控制台,并且包名称匹配.

事实上,当我在真实设备上运行应用程序时,它运行完美,我可以登录.

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)
Run Code Online (Sandbox Code Playgroud)

Pra*_*gan 40

为了防止滥用,firebase手机身份验证在模拟器中不起作用.

但是如果你想将它用于测试目的,那么你应该在firebase控制台中添加一些可以在模拟器中使用的测试电话号码.

转到您的firebase控制台 - >身份验证 - >登录方法 - >电话,然后选中"用于测试的电话号码(可选)"字段.

在此输入图像描述

  • @emaillenin确保之前未记录/注册您添加的电话号码.如果该身份验证中已存在该号码,则您无法将其添加为测试帐户 (2认同)

小智 10

在花了一整天的时间找出问题所在。我找到罪魁祸首了!我们是在 Google Play 应用签名中选择加入的。我们需要从 App Signing 本身注册 SHA-1。它可以在设置 > 应用程序完整性下的 Google Play 控制台内部找到。它将有两种类型的证书:

1.上传证书:这是上传的密钥库中的证书信息。这需要与本地应用程序签名的密钥库相同,因为 Google Play 将验证上传的应用程序以与此签名证书匹配。

2.应用签名证书:上传应用后,谷歌将用此证书替换上传证书。这是一个新证书,将用于在 Play 商店中发布的应用程序。

有了这些信息,我才意识到我们没有为已发布的应用程序使用的应用程序签名证书注册 SHA-1。因此,我在应用程序的 Firebase > 项目设置中添加了 SHA-1(还有 SHA-256,以防万一)指纹(添加指纹后不要忘记更新最新的配置文件)。

因此,添加您的 SHA 指纹后,您的 Firebase SHA 证书指纹将如下所示:

在此处输入图片说明

现在保存更改然后返回到您的应用程序并再次测试它现在可以工作了!。


Raz*_*ung 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的答案.


Hit*_*ahu 7

您的 SHA1 密钥未在 Firebase 控制台中注册。只需生成如下图所示的 SHA 密钥,从 Android Studio 终端复制 SHA 密钥并将其添加到 Firebase 控制台项目设置中:

在此处输入图片说明

还要确保您使用的是发布密钥库来生成此密钥

在此处输入图片说明

在此处输入图片说明

在此之后生成您的 SHA1 指纹,否则您的用户将在电话身份验证时面临 SHA1 错误。

希望它可以帮助某人。


The*_*mer 6

android studio中的sha1代:

从右侧面板中选择Android Studio中的Gradle

选择您的应用

在任务中-> android-> signingReport

双击signingReport。

您将在“ Gradle Console”中找到sha1指纹

在Firebase控制台中添加此sha1指纹

  • 工作起来很有魅力!谢谢 :) (3认同)
  • 泰!我正在使用设备进行测试(不是模拟器)。这是我发现解决此错误的唯一方法:FirebaseUiException:尝试获取包证书哈希时出现错误。 (2认同)

Rit*_*esh 5

您需要在Firebase控制台中配置SHA-1。

您可以使用Android Studio工具轻松完成此操作。

  1. Tools -> Firebase在Android Studio中打开。
  2. 单击任一功能,如Authentication或RealtimeDatabase。
  3. 单击,Connect to Firebase然后执行所需的操作。

要么

手动添加。看看这个。

如何将SHA-1添加到Android应用程序