Я хотел получить некоторые данные из mongodb (используя среду mongoose), но не смог получить данные,
ранее я использовал метод обратного вызова, как описано здесь для получения данных, которые работалихорошо для меня в " действие на Google v1", но не работает в v2,
, тогда я прочитал здесь , что нам нужно использовать обещание, чтобы сделать асинхронныйпозвоните в " action на google v2", затем я произвожу рефакторинг своего кода в соответствии с инструкцией Mr. @prisoner в приведенном выше вопросе
мой код можно посмотреть здесь:
import * as functions from 'firebase-functions';
import {
dialogflow,
SimpleResponse,
Suggestions,
DialogflowConversation,
DialogflowApp
} from 'actions-on-google'
import { Model } from './db'
const app = dialogflow({ debug: false })
app.middleware((conv) => {
conv["hasScreen"] =
conv.surface.capabilities.has('actions.capability.SCREEN_OUTPUT');
conv["hasAudioPlayback"] =
conv.surface.capabilities.has('actions.capability.AUDIO_OUTPUT');
});
app.intent('Get Some Data', (conv) => {
console.log("Get Some Data Intent triggered")
return new Promise(function (resolve, reject) {
Model.find({}, (err, result: any) => {
if (!err) {
if (!result.length) {
console.log("no data found")
conv.ask(new SimpleResponse({
speech: "no data found"
}))
resolve();
} else {
console.log("lots of data found")
conv.ask(new SimpleResponse({
speech: "lots of data found"
}));
resolve();
}
} else {
console.log("Error in getting data: ", err);
conv.ask(new SimpleResponse({
speech: "Error in getting data"
}))
resolve();
}
})
})
});
exports.webhook = functions.https.onRequest(app);
он все еще не работает для меня, и функция заканчивается с таймаутом
На самом деле у меня правильно работает приложение в v1, и теперь я пытаюсь перейти с v1 на v2, так какМне нужно использовать некоторые новейшие функции, которые не доступны в v1, такие как голосовая аутентификация и другие новые функции.любая помощь будет тепло приветствоваться