此请求缺少有效的应用程序标识符,这意味着 safetyNet 检查和 reCAPTCHA 检查均未成功

问题描述 投票:0回答:7

Flutter 应用程序 Firebase 电话身份验证错误:

此请求缺少有效的应用程序标识符,这意味着 safetyNet 检查和 reCAPTCHA 检查均未成功。

请帮我解决这个问题。

enter image description here

android flutter mobile
7个回答
50
投票
  1. 打开android studio并单击右上角的gradle>单击您的项目>选择应用程序>选择任务>选择android>单击签名报告>从那里复制我们的SHA1和SHA-256。

  2. 在您的新 Firebase 帐户中添加 SHA1 和 SHA-256 。

  3. 在build.gradle(:app)中添加依赖

    实现'androidx.browser:浏览器:1.3.0'

  4. 进入谷歌云控制台,选择您的项目。

  5. 单击导航菜单并选择 API 和服务,然后选择仪表板。

  6. 单击启用 api 和服务并启用 api“Google Play Integrity API”。

  7. 下载并替换项目中最新的 google-services.json 文件。

  8. 清理并重建项目。

检查您是否已完成项目中的所有 7 个步骤。如果您的应用程序已在 Plays 商店中上线,请确保您的 Firebase 项目也已发布 SHA1 密钥。有关发布和调试密钥的更多信息,您可以查看。 这个


14
投票

发生这种情况是因为 Firebase 需要验证电话号码登录请求是否来自您的应用。为此,它使用SafetyNetreCAPTCHA验证。根据 documentation,如果用户没有 Google Play 服务支持(以及在其他情况下),则会打开浏览器屏幕以进行验证码验证。只有验证成功后,才会发送 OTP。

因此,要启用 SafetyNet 和 reCAPTCHA 验证,请按照以下步骤操作:

  • 前往Google Cloud Platform并启用Android设备验证。

  • 打开终端并运行

    keytool -list -v \

    -alias androiddebugkey -keystore ~/.android/debug.keystore

(对于 Windows,请将 ~ 替换为您的用户个人资料地址)

  • 当要求输入密码时,输入“android”(不带引号)。

  • 复制终端上打印的 SHA1 和 SHA256 证书指纹。

  • 转到 Firebase 控制台中的“设置”,然后在“SHA 证书指纹”列下添加两个指纹。确保没有终端空格(否则将给出无效字符串错误)。

  • 从 Firebase 控制台设置下载最新的 google-services.json 并替换项目中的旧版本。

  • 在应用级build.gradle添加以下依赖(因为需要打开浏览器进行验证码验证)

    implementation 'androidx.browser:browser:1.3.0'

注意:请记住,打开 Google Cloud Platform 后选择的项目是您关注的 Firebase 项目。如果您的项目没有显示在打开的屏幕上,请单击“选择项目”,转到“全部”选项卡,然后选择您的项目。

screenshot


5
投票

如果您从 Play Console 使用 Play 应用签名,则需要进入“发布”>“设置”>“应用完整性”>“应用签名”,复制 SHA-1/SHA-256 证书指纹并将其粘贴到 Firebase 控制台 > 您的应用 > 选择应用 > SHA证书指纹 > 添加指纹


4
投票

这是因为 SHA 密钥。

添加调试密钥 + 添加发布密钥到您的 Firebase 应用程序中。


2
投票

dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
    implementation 'com.google.firebase:firebase-core:17.0.0'
    implementation 'com.google.firebase:firebase-appcheck-safetynet:16.0.0-beta05'
    implementation "org.jetbrains.kotlin:kotlin-reflect:1.6.10"
    implementation 'androidx.browser:browser:1.3.0' <*** add this line ***>
    implementation platform('com.google.firebase:firebase-bom:29.3.0')
    implementation 'com.google.firebase:firebase-auth'
    implementation 'com.google.android.gms:play-services-safetynet:18.0.1' <*** add this line ***>
}

  • keytool -list -v \ -alias androiddebugkey -keystore ~/.android/debug.keystore

Firebase 应用程序控制台和 SafetyNet 选项卡上的 SHA1 和 SHA-256


0
投票

您应该在依赖项 android/app/build.gradle 中添加安全网实现 依赖项{ ... 实施“com.google.firebase:firebase-appcheck-safetynet:16.0.0-beta04” }


0
投票

我正在使用 Expo EAS 构建我的应用程序,但我没有 android 文件夹。我收到这个警告。有人知道我该如何解决这个问题吗?

© www.soinside.com 2019 - 2024. All rights reserved.