Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Firebase 如何在意图之间保持价值_Firebase_Actions On Google_Dialogflow Es - Fatal编程技术网

Firebase 如何在意图之间保持价值

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_]

我在google上有一个操作,fullfillment作为firebase函数实现

我使用app.data对象在意图之间保留值。这是工作,但现在它的遗忘,我越来越“未定义”

在第一个意图中,我存储了从用户那里获得的值,并请求确认

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);

});