【问题标题】:How to disable reCaptcha in firebase phone-auth (OTP) android?如何在 firebase phone-auth (OTP) android 中禁用 reCaptcha?
【发布时间】:2021-12-19 08:41:34
【问题描述】:

我最近更新了 firebase 库,没有更改任何其他内容。

  implementation 'com.google.firebase:firebase-auth:20.0.1'
  implementation 'com.google.firebase:firebase-messaging:21.0.0'
  implementation 'com.google.firebase:firebase-storage:19.2.0' 
  implementation 'com.google.android.gms:play-services-auth:19.0.0'

但每当用户尝试注册时,Recaptcha 会显示几秒钟,然后有时会在从 firebase auth 收到 OTP 后重定向到 Web 浏览器 (CustomChromeTab)。大约需要 15-30 秒。如何防止 Recaptcha?但是,我在 firebase 控制台中添加了 SHA1 和 SHA256,并且没有更改代码。谢谢。

这是验证码验证过程的截图:

【问题讨论】:

  • 你找到解决办法了吗?
  • 是的!我上传了 sha256 密钥。问题解决了。
  • 我添加了从 play store 和 android studio 终端获取的 SHA256 密钥,但仍然会弹出此验证码
  • 上传 SHA256 和 sha1 密钥。这可能会有所帮助。

标签: firebase authentication


【解决方案1】:
  1. 转到谷歌云控制台
  2. 选择项目,它应该与运行 firebase 的项目相同,并确保您已添加调试版和发布版的 sha-1 和 sha-256,并将更新的 google-services.json 文件放入您的应用中。
  3. 搜索安卓设备验证
  4. 点击启用 5.完成

【讨论】:

    【解决方案2】:

    试试这个替代方法来禁用 reCaptcha

    mAuth = FirebaseAuth.getInstance();
    // set this to remove reCaptcha web
    mAuth.getFirebaseAuthSettings().setAppVerificationDisabledForTesting(true);
    

    因为我一直在关注Mohd Asim 的回答,但它不起作用。

    【讨论】:

    • 也许,在 Firebase 控制台中包含 SHA1 和 SHA256 密钥后,您没有重新更新 google_services.json。它仍在工作...希望对您有所帮助...
    • 我更新了文件,但还是不行。你有一个完整的示例项目来实现它吗? @MohdAsim
    【解决方案3】:

    大多数时候在实现依赖项时:

    implementation 'androidx.browser:browser:1.2.0' 
    

    以上窗口在浏览器中弹出。

    这里,是一个成功解决它的方法。

    步骤 1-

    在 Google Cloud Console 中,为您的项目启用 Android DeviceCheck API。将使用默认的 Firebase API 密钥,并且需要被允许访问 DeviceCheck API。

    第 2 步-

    如果您尚未指定应用的 SHA-256 指纹,请从 Firebase 控制台的设置页面执行此操作。有关如何获取应用的 SHA-256 指纹的详细信息,请参阅验证您的客户端。

    希望它有效! 如需更多信息,您还可以查看Google SafetyNet API,以在电话验证时检查设备中的 Google Play 服务安装。

    【讨论】:

    • 我做了以上步骤。但它仍然把我带到浏览器以获取验证码流。我正在使用 firebase-bom:26.2.0。
    • 尝试实现这个依赖,实现 'com.google.firebase:firebase-auth' 并确保你已经指定了你的 SHA1 和 SHA-256 并将你的 google-service.json 替换为修改后的,即在 Firebase 控制台中保存 SHA-1 和 SHA-256 之后。
    • 如果您使用的是模拟器,就会发生这种情况。其他情况可能是您使用的设备无法正常运行 google play 服务。 @Akshaykumar
    • 如何在我的 firebase 项目和云控制台项目之间建立连接。他们完全不同。我在火力基地有 2 个项目。虽然云控制台中没有项目。如果我在 Cloud Console 中创建新项目,如何链接它们。请指导我。 @Mohd 阿西姆
    • 谢谢!为我工作。使用电话身份验证 2 年,添加验证码导致问题 - 人们会在窗口打开之前取消,等等。这现在在 Firebase 文档中顺便说一句:firebase.google.com/docs/auth/android/phone-auth
    【解决方案4】:

    要删除验证码,您必须在 Google Cloud Console 中执行此操作。

    重要提示(您可能已经这样做了,但提醒一下):

    在firebase项目设置页面(See how to set)中添加项目(see how to get)的SHA1和SHA256。

    1. 转到 Google API 控制台中的 Library 页面。

    2. 在搜索栏中输入“Android 设备验证”,然后选择 Android 设备验证框 (API)。出现 Android 设备验证 API 仪表板屏幕。

    3. 如果 API 尚未启用,请点击启用。希望在这里您的问题得到解决,如果没有,请继续。

    4. 如果出现创建凭据按钮,请单击它以生成 API 密钥。否则,请单击所有 API 凭据下拉列表,然后选择与启用 Android 设备验证 API 的项目关联的 API 密钥。

    5. 在左侧边栏中,单击凭据。复制出现的 API 密钥。

    6. 在调用 SafetyNetClient 类的 attest() 方法时使用此 API 密钥。

    欲了解更多信息,请阅读此官方页面 - https://developer.android.com/training/safetynet/attestation

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-23
      • 1970-01-01
      • 2022-01-06
      • 2023-03-29
      相关资源
      最近更新 更多