自定义意图

时间:2018-05-22 19:22:54

标签: javascript node.js amazon-web-services aws-lambda alexa-skills-kit

我正在构建一个Amazon Alexa技能,可以从Google的Firebase获取数据异步。

当我在本地运行Lambda函数并从我的Alexa技能中调用它时,所有意图都按预期工作。

然而,当我压缩文件(而不是文件夹)并将其移动到AWS lambda时,即使已经收到数据并且响应对象按预期创建,该函数也会超时。

内置意图也按预期工作

我的代码是on GitHub here

The error log and console.log outputs

我试图通过这里和谷歌找到任何解决方案,但没有运气。可能是我一直在寻找错误的东西,或者这是一个特定的问题

1 个答案:

答案 0 :(得分:0)

Resource

当使用带有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();
  }
};