web-dev-qa-db-ja.com

firebase-tools getaddrinfo ENOTFOUND metadata.google.internal

私の端末でこのエラーが発生しています:

@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のアンインストールと再インストール、ログインとログアウトを試みました

7
DanNeo

構成の構造が間違っており、フィールドが不足しています...

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にアクセスすることはできません。

これが可能な場合、秘密鍵は公開されます。

ドキュメント を参照してください。

2
Martin Zeitler