firebase-tools getaddrinfo ENOTFOUND 元数据.google.internal

问题描述 投票:0回答:3

我的终端中出现此错误:

@firebase/database: FIREBASE WARNING: {"code":"app/invalid- 
credential","message":"Credential implementation provided to . 
initializeApp() via the \"credential\" property failed to fetch a valid 
Google OAuth2 access token with the following error: \"Failed to parse 
access token response: Error: Error while making request: getaddrinfo 
ENOTFOUND metadata.google.internal metadata.google.internal:80. Error 
code: ENOTFOUND\"."}`

使用

firebase-tools
时。这是我尝试运行的简单节点脚本。

const admin = require("firebase-admin");

const firebase = admin.initializeApp({
  apiKey: "MY_API_KEY",
  authDomain: "APP_ID.firebaseapp.com",
  databaseURL: `https://DATABASE_URL.firebaseio.com`,
  projectId: "APP_ID"
});

const snap = firebase
  .database()
  .ref("REF")
  .child("ID")
  .once("value");
console.log(snap);

Firebase 工具版本:5.0.1

我尝试过卸载并重新安装,使用

firebase login
/
firebase-logout

登录和退出 firebase-tools
javascript node.js firebase firebase-admin
3个回答
25
投票

配置结构错误且缺少字段...

admin.initializeApp({
    databaseURL: 'https://<DATABASE_NAME>.firebaseio.com',
    credential: admin.credential.cert({
        projectId: '<PROJECT_ID>',
        clientEmail: 'foo@<PROJECT_ID>.iam.gserviceaccount.com',
        privateKey: '-----BEGIN PRIVATE KEY-----\n<KEY>\n-----END PRIVATE KEY-----\n'
    })
});

您不能仅使用“Web”配置来访问 Firebase Admin SDK。

因为如果这是可能的,私钥就会暴露给公众。

请参阅文档


1
投票

我简单地通过运行解决了这个问题:

firebase login

当我没有互联网连接时,我也会遇到此错误。


0
投票

对于那些希望在 本地计算机上初始化 firebase admin SDK 的人。

  1. 启动 firbase 模拟器
    firebase emulators:start
  2. 运行
    export FIREBASE_AUTH_EMULATOR_HOST="127.0.0.1:9099"
    导出模拟器主机
  3. 在代码中初始化
    initializeApp({ projectId: 'enter-your-project-id' })
© www.soinside.com 2019 - 2024. All rights reserved.