Firebase Admin SDK调用始终报Connection Refused错误求助
验证Firebase服务域名连通性
Firebase Auth验证ID令牌依赖www.googleapis.com、oauth2.googleapis.com等特定域名,即使能访问https://www.google.com,也需要单独测试这些域名:在Ktor中发起请求到https://www.googleapis.com/oauth2/v3/tokeninfo,确认是否能正常响应。核对服务账号JSON配置
检查JSON文件内的client_email、private_key、project_id是否与Firebase控制台完全一致,避免复制遗漏或格式错误。同时确认该服务账号已在Google Cloud IAM中分配Firebase Auth Admin角色。检查Ktor客户端与Firebase SDK的兼容性
Firebase Admin SDK默认HTTP客户端可能和Ktor的配置冲突,比如自定义代理、超时设置或SSL配置问题。尝试为Firebase显式指定Ktor客户端:val httpClient = HttpClient(CIO) { // 保留默认配置或添加必要SSL设置 } val options = FirebaseOptions.Builder() .setCredentials(GoogleCredentials.fromStream(yourJsonInputStream)) .setHttpClient(httpClient) .build() FirebaseApp.initializeApp(options)排查本地DNS解析
若存在DNS解析异常,可能导致无法访问Firebase服务。用终端执行nslookup www.googleapis.com检查解析结果,必要时手动切换DNS服务器(如8.8.8.8)。确认SDK版本兼容性
核对firebase-admin与Ktor的版本匹配度,部分新版本Firebase SDK可能对Ktor客户端有特定依赖要求。尝试将firebase-admin切换到稳定版本(如9.2.0),再测试验证功能。开启Firebase调试日志
添加日志配置查看初始化细节:System.setProperty("org.slf4j.simpleLogger.defaultLogLevel", "debug")运行项目后查看控制台输出,排查是否存在初始化失败、权限不足或网络相关警告。
内容的提问来源于stack exchange,提问作者Frank Egan

