Firebase 如何在意图之间保持价值
我在google上有一个操作,fullfillment作为firebase函数实现 我使用app.data对象在意图之间保留值。这是工作,但现在它的遗忘,我越来越“未定义” 在第一个意图中,我存储了从用户那里获得的值,并请求确认Firebase 如何在意图之间保持价值,firebase,actions-on-google,dialogflow-es,Firebase,Actions On Google,Dialogflow Es,我在google上有一个操作,fullfillment作为firebase函数实现 我使用app.data对象在意图之间保留值。这是工作,但现在它的遗忘,我越来越“未定义” 在第一个意图中,我存储了从用户那里获得的值,并请求确认 app.intent('intent1', (conv, {myValue}) => { //CLEAN AND STORE THE VALUE conv.data.myValue = myValue.replace(/[\W_]
app.intent('intent1', (conv, {myValue}) => {
//CLEAN AND STORE THE VALUE
conv.data.myValue = myValue.replace(/[\W_]+/g,'').toUpperCase();
//ASK USER TO CONFIRM
conv.contexts.set(Contexts.CONFIRM_YES_NO, 1);
//THIS WORKS OK AND THE VALUE IS DISPLAYED CORRECTLY
conv.ask(`I heard ${conv.data.myValue}, is this correct?`);
conv.ask(new Suggestions('Yes'));
conv.ask(new Suggestions('No'));
});
在第二个意图中,我想重新使用原始值,但得到“未定义”:
这里发生了什么事?这种方法过去一直有效,直到今天我升级了firebase-tools@3.18.6. 我确实做了额外的修改,所以不确定是我弄坏了还是谷歌…所以太神奇了,我一发布问题,我的大脑就想出了答案 无论如何,我并没有将输出上下文用于yes/no意图,而是删除了整个输出上下文(图片中的红色x),而不是删除输出上下文名称(图片中的蓝色x) 这打破了它。。。显然,当您完全删除输出上下文时,上下文被重置。我不完全理解上下文,我猜
app.intent('confirm_yes', (conv) => {
//RETURNS "UNDEFINED"
console.log(conv.data.myValue);
});