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

Firebase项目ID获取失败(ENOTFOUND)问题修复求助

问题:无法查看Firebase账户关联订单,报错getaddrinfo ENOTFOUND metadata.google.internal

错误详情

FirebaseAppError: Failed to determine project ID: Error while making request: getaddrinfo ENOTFOUND metadata.google.internal. Error code: ENOTFOUND
    at D:\GIles-NMCT\Documents\3MCT\Advanced Full Stack\AFSWD_museum\node_modules\firebase-admin\lib\app\credential-internal.js:192:19
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at FirebaseAuthStrategy.authorize (D:\GIles-NMCT\Documents\3MCT\Advanced Full Stack\AFSWD_museum\api\src\auth\firebase.strategy.ts:45:14)
    at FirebaseAuthStrategy.validate (D:\GIles-NMCT\Documents\3MCT\Advanced Full Stack\AFSWD_museum\api\src\auth\firebase.strategy.ts:33:21)

修复方案

  • 显式配置Firebase Admin SDK
    该错误是因为本地开发环境无法访问GCP专属的元数据服务器,需手动指定项目ID和服务账号凭证:

    1. 从Firebase控制台下载服务账号JSON文件(路径:项目设置 → 服务账号 → 生成新私钥)
    2. 在firebase.strategy.ts中初始化SDK时传入完整配置:
      import * as admin from 'firebase-admin';
      import serviceAccount from './path/to/your-service-account.json';
      
      if (!admin.apps.length) {
        admin.initializeApp({
          credential: admin.credential.cert(serviceAccount as admin.ServiceAccount),
          projectId: '你的Firebase项目ID'
        });
      }
      
  • 配置环境变量
    可以通过环境变量传递配置:

    • 设置GOOGLE_APPLICATION_CREDENTIALS为服务账号JSON文件的绝对路径
    • 或直接设置FIREBASE_PROJECT_ID环境变量,确保SDK能读取到项目ID
  • 检查网络连通性
    确认本地网络可访问Firebase API,没有被防火墙、代理拦截。可尝试访问https://firebase.googleapis.com验证网络通畅。

  • 核对初始化逻辑
    检查firebase.strategy.ts中的SDK初始化代码,避免在非GCP环境下依赖自动获取元数据的逻辑,确保配置项完整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 02:37:30