Я видел похожие вопросы, но мой вариант использования кажется другим. Позволь мне объяснить.
- У меня ОДИН проект.
- Я использую в проекте аутентификацию Firebase
- Я создал облачную функцию HTTP на основе Node JS для разных маршрутов.
Используя Postman, я отправляю POST-запрос в функцию Cloud и использую маршрут login
, передаю адрес электронной почты и пароль и получаю токен в ответе.
Используя Postman, я выполняю запрос POST к функции Cloud и использую маршрут check
, передав токен из предыдущего запроса и аутентифицируя токен. Оно работает. Для этого я использую функцию admin.auth().verifyIdToken
клиентского администратора firebase.
Вроде все хорошо.
Теперь, когда я настраиваю конечную точку Google Cloud (в контейнере Google Cloud Run) в том же проекте и:
Я не установил никаких опций ценных бумаг (пока) в yaml-файле Firebase stagger.
Я могу отправить запрос POST в конечную точку Google Cloud, используя путь
login
, я получаю токен, как и раньше.Но когда я делаю свой POST-запрос, используя конечную точку по пути
check
, я получаю сообщение «Идентификационный токен Firebase имеет неверное утверждение aud (аудитория)». ошибка.
Кажется, я перепробовал все варианты, предложенные другими на этих форумах. Я создал закрытый ключ из консоли firebase и инициализировал с его помощью клиент администратора firebase, и все же я получаю ту же ошибку, которая гласит: «Требование предполагается к идентификатору проекта, но оно принимает его как имя функции», которое является частью того же проекта.
Я также настроил свою функцию node js с помощью cors (app.use(cors())
), но такая же ошибка сохраняется.
Я занимаюсь этим последние 4-5 дней, но, похоже, не понимаю, в чем именно проблема и почему он не может принять вызов функции клиента администратора. Любой, кто даст мне направление, будет очень признателен. Спасибо.