我正在构建一个Amazon Alexa技能,可以从Google的Firebase获取数据异步。
当我在本地运行Lambda函数并从我的Alexa技能中调用它时,所有意图都按预期工作。
然而,当我压缩文件(而不是文件夹)并将其移动到AWS lambda时,即使已经收到数据并且响应对象按预期创建,该函数也会超时。
内置意图也按预期工作
我的代码是on GitHub here
The error log and console.log outputs
我试图通过这里和谷歌找到任何解决方案,但没有运气。可能是我一直在寻找错误的东西,或者这是一个特定的问题
答案 0 :(得分:0)
当使用带有lambda的firebase时,你似乎需要初始化然后删除要返回的响应的实例。
这是我开始工作的代码snippit
const Alexa = require("ask-sdk");
const firebase = require("firebase");
var config = {
...
};
const GetOrderIntent = {
canHandle(handlerInput) {
const request = handlerInput.requestEnvelope.request;
return (
request.type === "IntentRequest" &&
request.intent.name === "GetOrderIntent"
);
},
async handle(handlerInput) {
firebase.initializeApp(config);
try {
const store = await firebase
.database()
.ref(`teams/${team}`)
.once("value");
// ANY OTHER CODE HERE
} catch (error) {
// HANDLE ERROR
}
// CLOSE THE CONNECTION
await firebase.app("[DEFAULT]").delete();
return handlerInput.responseBuilder
.speak(speechOutput)
.withSimpleCard(SKILL_NAME, speechOutput)
.getResponse();
}
};