Облачная функция Firebase вызывается только из «Бэкэнда» - PullRequest
0 голосов
/ 27 сентября 2019

Я хочу создать облачную функцию Firebase, которая не запускается автоматически и вызывается только для административных целей.Я знаю, что могу сгенерировать некоторый случайный ключ и сохранить его в конфигурации:

exports.someFunction = functions.https.onRequest((req, res) => {
  if (req.query.key !== functions.config().access.key) {
    res.status('401').send('Unauthorized');
    return;
  }
  // actual body here
});

Но это кажется хрупким не в последнюю очередь, потому что я должен поддерживать все ключи сам.Я бы предпочел вообще не раскрывать функцию через HTTPS и позволять вызывать ее только через консоль администратора или интерфейс командной строки Firebase или что-то в этом роде.

Есть ли способ сделать это?

1 Ответ

1 голос
/ 27 сентября 2019

Краткий ответ: Нет

Более длительное обсуждение:

У вас не может быть личных функций - на каждого сотрудника Firebase Дуга Стивенсона Облачные функции Firebase предназначены только для экспортируемых функций со специально определенными триггерами .Вы не можете развернуть обычную функцию JavaScript, а затем каким-то волшебным образом вызывать ее из консоли Firebase или CLI.

Ваши функции имеют , которые можно вызывать с вашего сайта или вызывать из одно из этих запускающих событий .На данный момент не существует реализованной функции для вызова облачной функции из консоли Firebase или CLI.

Хотя это и не прямой ответ на ваш вопрос, Даг предоставляет этот обходной спримеры кода того, как ваша учетная запись администратора может действовать от имени пользователя и быть ограничена набором разрешений этого пользователя.Использование этого подхода ( в сочетании с надлежащими правилами безопасности базы данных / хранилища ) должно удовлетворять большинству сценариев использования.

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