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

本地开发Firebase verifyIdToken报auth/argument-error(ETIMEDOUT)求助

问题解决:Firebase Auth verifyIdToken本地环境ETIMEDOUT超时

问题核心

本地开发环境调用auth.verifyIdToken(id_token)时出现connect ETIMEDOUT错误,目标地址为Google的IPv6服务器(2a00:1450:4007:80b::200a:443),但生产环境运行正常,且未修改任何代码。

解决方案

1. 强制Node.js优先使用IPv4

报错指向IPv6连接超时,大概率是本地IPv6网络不通。启动Node服务时添加参数强制走IPv4:

node --dns-result-order=ipv4first server.js

也可通过环境变量全局设置(Windows用set,Linux/macOS用export):

# Windows
set NODE_OPTIONS="--dns-result-order=ipv4first"

# Linux/macOS
export NODE_OPTIONS="--dns-result-order=ipv4first"

设置后重启服务即可生效。

2. 排查本地网络拦截

  • 关闭VPN、代理软件,这类工具可能阻断Node进程访问Google服务;
  • 检查本地防火墙规则,确认允许当前Node进程访问外网;
  • 切换网络环境(比如从公司内网换为手机热点),测试是否为当前网络的限制问题。

3. 重置Firebase Admin依赖

彻底清理并重装依赖,避免缓存或包损坏问题:

rm -rf node_modules package-lock.json
npm install

同时清除npm缓存:

npm cache clean --force

4. 本地调试用Firebase模拟器(推荐)

本地开发时可使用Firebase Auth模拟器,完全无需连接外网。启动模拟器后,在代码中配置指向本地服务:

const admin = require('firebase-admin');
admin.initializeApp();

// 连接本地Auth模拟器
admin.auth().useEmulator('http://localhost:9099');

启动模拟器命令:

firebase emulators:start --only auth

5. 检查DNS配置

若本地DNS解析异常,更换为公共DNS(如Google的8.8.8.8),重启网络后再测试请求是否正常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 13:37:32