Я использую облачную функцию Firebase в качестве выполнения для моего действия DialogFlow Google Assistant, но мне нужно удалить данные из базы данных Firebase, прежде чем я уладю намерение. Вот фрагмент кода:
var userDataRef = sessionDatabaseRef.child(sessionId);
userDataRef.once("value").then(function(data) {
console.log(data.val());
handleIntentAndProcessResponse();
}).catch(function(){
console.log("No data yet for this session");
handleIntentAndProcessResponse();
});
Функция с именем handleIntentAndProcessResponse
- это то, где намеренная логика c возвращает ответ, устанавливая conv.ask(new SimpleResponse(blah))
. Когда я проверяю это, это терпит неудачу, и журнал Облачной функции дает мне эту ошибку:
Ошибка: не был установлен ответ. Используется ли это в асинхронном c вызове, который не был возвращен как обещание обработчику намерений?
Итак, как я могу обработать этот асинхронный c вызов в базе данных Firebase, чтобы он ждет ответа? Мне нужно использовать данные, которые он возвращает при обработке намерения.