Чтобы добиться привязки аккаунта между базой данных Google Firestore, которая использует аутентификацию Google с электронной почтой / паролем, и аккаунтом Google пользователя (например, на Действиях на устройстве Google), я пытаюсь реализовать неявный поток связывания аккаунтов Google как описано здесь:
https://developers.google.com/actions/identity/google-sign-in-oauth?creation=no
На консоли я указал URL авторизации и URL для обмена токенами.

URL авторизации открывает веб-логин. На этом экране - когда пользователь успешно входит в Firebase с помощью электронной почты / пароля - я создаю токен из идентификатора пользователя и возвращаю его по предоставленному URL перенаправления, включая состояние и тип токена, как указано в документации:
https://oauth -redirect.googleusercontent.com / г / YOUR_PROJECT_ID # access_token = access_token & token_type = носителем и состояние = STATE_STRING
Пока что это работает нормально, экран входа в систему закрывается, и с этого момента моя учетная запись считается связанной, и все запросы помощника по Google содержат указанный мной токен.
Но я просто не понимаю, что с этим делать дальше. Насколько я понимаю документы, после того, как учетная запись связана, она должна вызывать конечную точку обмена токенами для обмена этим пользовательским токеном с токеном доступа и / или обновления и дополнительной информацией о пользователе. Чтобы увидеть входящий запрос в конечной точке обмена, я предоставил простой скрипт, который выглядит следующим образом:
exports.exchangeToken = functions.https.onRequest((req, res) => {
console.log(JSON.stringify(req.headers))
res.send(JSON.stringify(req.headers))
}
но по логам он никогда не вызывается. Вместо этого веб-крючок, который я настроил в разделе выполнения DialogFlow, вызывается напрямую.
Чего мне не хватает, чтобы инициировать обмен токенами и получить userID моего проекта firebase до того, как будет вызвано выполнение?