Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

firebase-tools getaddrinfo ENOTFOUND metadata.google.internal

I'm getting this error in my terminal:

@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\"."}`

when using firebase-tools. This is the simple node script I'm trying to run.

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 tools version: 5.0.1

I've tried uninstalling and reinstalling, logging in and out of firebase-tools with firebase login / firebase-logout

like image 344
DanNeo Avatar asked Oct 09 '18 14:10

DanNeo


2 Answers

the configuration has the wrong structure and lacks fields ...

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'
    })
});

you cannot just use the "web" configuration to access the Firebase Admin SDK.

because if this would be possible, the private key would be exposed to the public.

see the documentation.

like image 147
Martin Zeitler Avatar answered Oct 23 '22 09:10

Martin Zeitler


I solved it simply by running :

firebase login

I also have this error when I don't have an internet connection.

like image 1
Jack' Avatar answered Oct 23 '22 11:10

Jack'