Весь приведенный ниже код работает после 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);
});
};