У меня есть проект Firebase под управлением GCP. У меня есть NodeJS 10 вызываемых функций, которые прекрасно работают с локальным эмулятором Firebase и на тестовой странице функций GCP, но при попытке вызвать их в производство с использованием httpsCallable в веб-приложении я получаю 401 Unauthorized - ваш клиент не имеет разрешения на запрошенный URL
Моя тестовая функция практически ничего не дает - она просто возвращает жестко закодированную строку. После попыток вызова в журналах ничего не появляется.
Попытка вызова функции выполняется после прохождения проверки подлинности Firebase в веб-приложении, и в процессе разработки я вижу, что пользователь действительно передается параметру context.
Я использую Firebase Tools 8.0.2 для развертывания.
В деталях функции консоли GCP я вижу "Параметры входа - Разрешить все трафик c", и, как я писал выше, он успешно запускается из теста там есть вкладка.
Я попытался сделать функцию publi c, но не могу установить разрешения в консоли или gcloud. Когда я пытаюсь запустить следующую команду с gcloud:
gcloud functions add-iam-policy-binding my-function-name \
--member="allUsers" \
--role="roles/cloudfunctions.invoker"
, я получаю:
ERROR: (gcloud.functions.add-iam-policy-binding) ResponseError: status=[403], code=[Forbidden], message=[Permission 'cloudfunctions.functions.setIamPolicy' denied on resource 'projects/my-project-name/locations/us-central1/functions/my-function-name' (or resource may not exist).]
, даже если моя учетная запись выполняет следующие роли: владелец проекта, администратор облачных функций, администратор безопасности , Администратор политики IAP, Администратор организации
Любое руководство будет оценено.