Есть несколько проблем с вашим кодом, которые указывают на фундаментальную проблему.Давайте рассмотрим каждый из них.
Основная проблема: вы никогда не просите пользователя войти в систему
Пока у вас есть код, который обрабатывает ответ от входа в системуПохоже, что нет никакого кода, который просит пользователя войти в систему.
В то время как есть другие способы входа пользователя (например, они могут войти на вашем сайте), типичныйМожно попросить их сделать это с помощью помощника по входу в ответ на одно из ваших намерений.Это может выглядеть примерно так:
app.intent('Start Signin', conv => {
conv.ask(new SignIn('To get your account details'))
})
, если вы используете библиотеку actions-on-google.Что на самом деле приводит к другой проблеме.
Вы смешиваете выполнение диалогового окна и библиотеку действий на Google
И, что еще хуже, вы делаете этотаким образом, это, вероятно, вызывает проблемы.
Похоже, что вы в основном используете библиотеку исполнения диалогового потока, так как это то, что настроено в обработчике функции Firebase и что вызывает вызов agent.handleRequest(intentMap);
.
Несмотря на то, что вы настраиваете другой обработчик с помощью вызова app.intent()
, вы делаете это в своем приветственном намерении (судя по его имени), чего вы обычно не хотите делать.Также нет ничего настроенного для вызова этого обработчика.Как правило, вы устанавливаете это с помощью строки, такой как
exports.dialogflowFirebaseFulfillment = functions.https.onRequest(app);
Так как эта строка очень похожа на строку, выполняющую диалог, она указывает на то, что вы должны выполнить выполнение с одной или другой библиотекой.- не оба.В общем, если вы выполняете действия в Google, придерживайтесь библиотеки Actions-on-Google.