首页 > 解决方案 > Firebase 电话身份验证 SHA-1 指纹问题

问题描述

我使用电话身份验证在颤动中创建了一个登录页面。我在其中收到错误:

E/FirebaseAuth(21546):[SmsRetrieverHelper] SMS 验证码请求失败:未知状态码:17028 已通过安全网令牌,但在 Firebase 控制台中未注册匹配的 SHA-256。请确保此应用程序的 packageName/SHA256 对已在 Firebase 控制台中注册。I/flutter (21546):此应用无权使用 Firebase 身份验证。请确认在 Firebase 控制台中配置了正确的包名称和 SHA-1。[ 通过了一个安全网令牌,但在 Firebase 控制台中没有注册匹配的 SHA-256。请确保此应用程序的 packageName/SHA256 对已在 Firebase 控制台中注册。]

我已经使用以下步骤从 cmd 获取了 SHA1 和 SHA256 密钥:

  1. 在cmd中,访问了java jdk的安装路径(在我的例子中:C:\Program Files\Java\jdk1.8.0_212)
  2. 然后粘贴以下命令并点击 enter keytool -list -v -keystore "C:\Users\Mehul Jain.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android

之后,我得到了屏幕截图所示的密钥。

SHA1 密钥

复制这两个密钥并粘贴到 firebase 控制台中(如下面的屏幕截图所示) Firebase 控制台

应用程序正常工作。当我尝试通过测试模式签名(即输入手机号码和 otp)并使用测试模式详细信息运行应用程序时,应用程序运行 100%。但是,如果我想从应用程序中添加手机号码并尝试获取短信,屏幕上就会出现错误。我尝试了各种其他手机号码但仍然无法使用(手机号码未在测试模式下输入)。

标签: androidfirebaseflutterfirebase-authentication

解决方案


  • 如果使用的是模拟器,那么安全网会失败,请确保您使用的是合法的 Android 设备
  • 您可能使用了错误的密钥库。查找调试 SHA 密钥的最佳方法是Gradle >> signinreport>>右键单击>>运行

在此处输入图像描述


推荐阅读