firebase admin sdk аутентификация локально завершается с помощью getaddrinfo ENOTFOUND - PullRequest
0 голосов
/ 26 июня 2019

Имея локально разработанную облачную функцию и запустив ее локально с помощью:

эмуляторов firebase: start

Облачная функция здесь:

 const functions = require('firebase-functions');
 const admin = require('firebase-admin');

 admin.initializeApp({
   credential: admin.credential.applicationDefault(),
   databaseURL:"https://test1-xxx.firebaseio.com",
 });

Я получаю:

 FirebaseAppError: Credential implementation provided to initializeApp() via the "credential" property failed to fetch a valid Google OAuth2 access token with the following error: "Error fetching access token: Error while making request: getaddrinfo ENOTFOUND metadata.google.internal. Error code: ENOTFOUND".
     at FirebaseAppError.FirebaseError [as constructor] (/Users/dgang/study/test/functions/node_modules/firebase-admin/lib/utils/error.js:42:28)
     at FirebaseAppError.PrefixedFirebaseError [as constructor] (/Users/dgang/study/test/functions/node_modules/firebase-admin/lib/utils/error.js:88:28)
     at new FirebaseAppError (/Users/dgang/study/test/functions/node_modules/firebase-admin/lib/utils/error.js:122:28)
     at /Users/dgang/study/test/functions/node_modules/firebase-admin/lib/firebase-app.js:121:23
     at processTicksAndRejections (internal/process/task_queues.js:89:5) {    errorInfo: {
     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: "Error ' +
       'fetching access token: Error while making request: ' +
       'getaddrinfo ENOTFOUND metadata.google.internal. Error ' +
       'code: ENOTFOUND".'    },    codePrefix: 'app'  }

Я определил GOOGLE_APPLICATION_CREDENTIALS по мере необходимости, но это не помогает.

Я попытался решить проблему, но безрезультатно.

Что нужно дляздесь можно исправить?

Обновление:

Когда мне явно требуется учетная запись службы, она работает:

var serviceAccount = require("service-account.json");

admin.initializeApp({
    credential: admin.credential.cert(serviceAccount),
    databaseURL:"https://test1-xxx.firebaseio.com",
  });

, но это опасный вариант

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...