You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android集成Firebase认证时遭遇RecaptchaAction错误求助

解决Firebase认证Recaptcha Action失败(socket failed:EPERM)的问题

错误核心原因

socket failed:EPERM (Operation not permitted) 本质是应用的网络请求被系统拒绝,结合Recaptcha Action失败的提示,主要是网络权限缺失、网络安全配置限制,或Firebase基础配置问题导致。

解决方案

  • 添加必要的网络权限
    在AndroidManifest.xml的<manifest>标签内添加网络权限:

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    

    其中INTERNET权限为必须项,ACCESS_NETWORK_STATE用于辅助Recaptcha检测网络状态,保障正常运行。

  • 配置网络安全策略(针对Android 9+)
    若应用targetSdkVersion >= 28,系统默认禁止明文网络流量,可能导致Recaptcha部分请求失败,可按以下步骤配置:

    1. 在res/xml目录下创建network_security_config.xml,内容如下:
      <?xml version="1.0" encoding="utf-8"?>
      <network-security-config>
          <base-config cleartextTrafficPermitted="true" />
      </network-security-config>
      
    2. 在AndroidManifest.xml的<application>标签中引用该配置:
      <application
          ...
          android:networkSecurityConfig="@xml/network_security_config"
          ...>
      
  • 验证Firebase基础配置

    1. 登录Firebase控制台,确认你的应用已启用Email/Password认证方式(路径:Authentication > Sign-in method)
    2. 检查google-services.json文件是否放置在app模块根目录,且文件中的包名、SHA-1指纹与控制台配置完全一致
  • 更新Firebase依赖版本
    确保app/build.gradle中Firebase Auth的依赖为最新稳定版,避免版本兼容问题:

    dependencies {
        // 替换为最新稳定版
        implementation 'com.google.firebase:firebase-auth:22.3.1'
    }
    
  • 排除测试环境问题

    • 若使用模拟器测试,检查模拟器网络连接是否正常,能否访问外网
    • 尝试在真机上运行测试,排除模拟器的网络限制

内容的提问来源于stack exchange,提问作者Chewietheshiba

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 22:08:18