将数据上传到Firesbase后,Alexa技能没有响应

时间:2019-11-27 12:46:10

标签: firebase google-cloud-firestore alexa-skills-kit alexa-skill

我已经在alexa开发人员控制台中开发了我的项目,并且已将其发送到firebase(Firestore),但是Alexa在firebase(firestore)中创建了集合后没有发送响应。下面是我的代码:

 const Alexa = require('ask-sdk-core');
 const admin1 = require("firebase-admin");
 const serviceAccount = require('./serviceAccountKey.json');
 databaseURL="https://alexa-db8fe.firebaseio.com";


admin1.initializeApp({
credential: admin1.credential.cert(serviceAccount),
databaseURL: "https://alexa-db8fe.firebaseio.com"

});

var db = admin1.firestore();

const LaunchRequestHandler = {
    canHandle(handlerInput) {
       return Alexa.getRequestType(handlerInput.requestEnvelope) === 'LaunchRequest';
   },
handle(handlerInput) {

    var documentReference = db.collection('menu1').doc('namedoc');

    documentReference.get().then(documentSnapshot=>
        {
           if(documentSnapshot.exists){

            let speakOutput1 =('Document Exists');

            return handlerInput.responseBuilder
            .speak(speakOutput1)
            .reprompt(speakOutput1)
            .getResponse();
           }
           else{
            let speakOutput2 =('Document does not Exists');

    return handlerInput.responseBuilder
            .speak(speakOutput2)
            .reprompt(speakOutput2)
            .getResponse();
           }
        });
}};

代码var documentReference = db.collection('menu1').doc('namedoc');正在正确创建一个新集合和一个文档,但是alexa并未说以下响应“ Document exist”,它的意思是执行etcc时出现问题…… 谁能帮忙解决这个问题?

1 个答案:

答案 0 :(得分:0)

尝试:

return documentReference.get().then...

只需返回您从回调函数返回的对象。 Alexa只是不知道该说些什么,因为您不会在handle方法的末尾返回响应对象。