我已经在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时出现问题……
谁能帮忙解决这个问题?
答案 0 :(得分:0)
尝试:
return documentReference.get().then...
只需返回您从回调函数返回的对象。 Alexa只是不知道该说些什么,因为您不会在handle
方法的末尾返回响应对象。