Firebase Node.js учетные данные для локального тестирования с функциями - PullRequest
0 голосов
/ 19 июня 2020

Весь приведенный ниже код работает после firebase deploy, но выдает ошибку при запуске на локальном компьютере:

Ошибка: реализация учетных данных, предоставленная для initializeApp () через свойство «credential», не смогла получить действительный токен доступа Google OAuth2 со следующей ошибкой: «Ошибка при получении токена доступа: ошибка при выполнении запроса: getaddrinfo ENOTFOUND metadata.google.internal. Код ошибки: ENOTFOUND».

Как изменить следующее config, чтобы он работал в локальной тестовой среде и в Firebase после развертывания?

foo. js работает локально и на firebase getUsersFunction работает на firebase, но не локально с firebase emulators:start --only=functions

Я установил две конечные точки firebase и запустил их локально с помощью: firebase emulators:start --only=functions

index. js

"use strict";
const fooFunction = require("./foo");
const getUsersFunction = require("./getUsers");
const functions = require("firebase-functions");
const admin = require("firebase-admin");

admin.initializeApp(functions.config().firebase);

exports.fooFunction = functions.https.onRequest((req, res) => {
   fooFunction.handler(req, res);
});

exports.getUsersFunction = functions.https.onRequest((req, res) => {
   getUsersFunction.handler(req, res, admin);
});

foo. js

exports.handler = function (req, res, database) {
   res.send("foo ran successfully");
};

getUsersFunction. js

exports.handler = function (ref, res, admin) {
   admin
      .auth()
      .listUsers(1000)
      .then(function (listUsersResult) {
         console.log(listUsersResult);
         res.send("done");
         return null;
      })
      .catch(function (error) {
         console.log("Error listing users:", error);
      });
};

1 Ответ

0 голосов
/ 19 июня 2020

Я только что проверил журналы Firebase и заметил следующее:

Биллинговая учетная запись не настроена. Внешняя сеть недоступна, и квоты сильно ограничены. Настройте платежную учетную запись, чтобы удалить эти ограничения

Код в порядке, как есть - ошибка возникла из-за ограничений моей учетной записи. Я публикую это в надежде, что это поможет другим разработчикам не тратить зря время, которое я сделал.

...