Облачную функцию GCP невозможно вызвать из приложения Firebase - разрешения GCF - PullRequest
0 голосов
/ 06 августа 2020

Я разрабатываю приложение в Firebase и некоторые вызываемые облачные функции HTTPS (node.js) в GCP. Когда я создаю облачную функцию, Google по умолчанию делает ее закрытой. Однако, когда я пытаюсь вызвать любую из облачных функций, появляется ошибка CORS, т.е. "Access to fetch at <url of function> from origin http://localhost:4200" has been blocked by CORS policy...". Кроме того, я получаю "Unhandled Promise rejection: internal ; Zone <root>; Task..."

Из других ответов я смог избавиться от этих ошибок, установив разрешения для облачной функции, предоставив allUsers роль Cloud Functions Invoker. Это делает функцию publi c. Поэтому любой может хотя бы вызвать его. Я понимаю, что вызываемые функции HTTPS также отправляют некоторые данные аутентификации в переменной context, которые мы можем использовать для аутентификации запроса. Тем не менее, все еще не кажется безопасным, что кто-либо может хотя бы вызывать функцию, возможно, повторно вызывать ее.

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

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

Заранее благодарим за помощь / предложения.

...