перехватить ответ firebase-функций (промежуточное ПО) - PullRequest
0 голосов
/ 29 ноября 2018

В моем проекте Google Assistant / Dialogflow я пытаюсь перехватить каждый ответ, который моя конечная точка firebase-функций отправляет обратно в Dialogflow.Я могу легко перехватить запрос, но ответ создается в нескольких функциях (одна функция для каждого Намерения), и я не хочу включать перехватчик в каждую функцию.

Возможно ли иметь промежуточное ПОили при отправке ответа предоставляется обратный вызов, своего рода глобальный перехватчик для каждого ответа?

В документах я нашел следующее: https://firebase.google.com/docs/functions/http-events#use_middleware_modules_with

Однако яне уверен, куда это идет.Обратите внимание, что я не использую пользовательскую экспресс-настройку, но использую встроенную реализацию для Firebase напрямую.

Ответы [ 3 ]

0 голосов
/ 29 ноября 2018

Я хотел, чтобы нечто подобное перехватывало все разговоры назад и вперед для целей регистрации.В итоге я написал функцию, которую использую для отправки разговора.Например:

const intercept = (conv, sentence) => {
  //My Interceptor code
  conv.ask(sentence)
}

Теперь, когда я хочу отправить ответ, я бы использовал:

intercept(conv, "Speak this")
0 голосов
/ 30 ноября 2018

serialize () вызывается в диалоге непосредственно перед отправкой ответа, поэтому вы можете расширить объект диалога (в зависимости от используемой вами библиотеки) и перезаписать метод serialize, чтобы сделать все, что вам нужноделать.не забудьте вызвать оригинальный метод сериализации и вернуть значение в ваш новый метод.

0 голосов
/ 29 ноября 2018

Cloud Functions не предоставляет никакого промежуточного программного обеспечения или перехватчиков для HTTP-запросов или ответов.Вам придется что-то создавать самостоятельно, вероятно, с помощью приложения Express, которое вы создаете сами.Вы можете разместить приложение Express в облачных функциях.

...