Node.js 上下文流和实体不在dialogflow中工作

Node.js 上下文流和实体不在dialogflow中工作,node.js,actions-on-google,dialogflow-es-fulfillment,Node.js,Actions On Google,Dialogflow Es Fulfillment,我正在谷歌和dialogflow上使用actions构建一个开放式对话应用程序。我创建了一个名为“评级”的实体,用于存储1到5的数字,下面是该实体的屏幕截图: 我在名为“第一”的意图中使用此实体。以下是截图: 我使用的第一个意图是“调查ID”。以下是测量ID意图的代码: app.intent('Survey ID', (conv, {number}) => { const id = number; if(id == 2020){ conv.ask(qst

我正在谷歌和dialogflow上使用actions构建一个开放式对话应用程序。我创建了一个名为“评级”的实体,用于存储1到5的数字,下面是该实体的屏幕截图:

我在名为“第一”的意图中使用此实体。以下是截图:

我使用的第一个意图是“调查ID”。以下是测量ID意图的代码:

app.intent('Survey ID', (conv, {number}) => {
    const id = number;
    if(id == 2020){
        conv.ask(qstion[0]);
    }
    else{
        conv.close('This is not a valid survey ID');
    }
});
以下是“第一”意图的代码:

app.intent('First', (conv) => {
    const rating = conv.parameters.Rating;
    if(type[0] === 'RATING'){
        if(rating >= 1 && rating <= 5){
            senddata[0] =  qstion[0] + rating;
            conv.ask(qstion[1]);
        }
        else{
            conv.ask('Please enter a number between 1 and 5');
        }
    }

});
我面临的问题是,即使我输入了一个介于1到5之间的数字,它仍会进入“First”意图代码中的else块,并说“请输入一个介于1到5之间的数字”。当我使用除1到5以外的任何数字时,它应该转到备用意图,但它转到“调查ID”意图并说“这不是有效的调查ID”

预期的行为是,如果我输入一个介于1和5之间的数字,它应该存储它并询问下一个问题,如果我说了其他任何事情,它应该转到回退意图并显示用户的响应

作为参考,我还提供了所有三个意图的上下文:

“调查ID”上下文:

“第一”语境:

“第一个回退”上下文:


有人能帮我一下吗?

如果你看JSON请求,我猜评级的值不是一个
数字,而是一个
字符串。您可能需要首先使用
parseInt(conv.parameters.Rating)
@NickFelker转换值。我尝试过这个,但它不起作用“Rating”的值是多少?如果输入5,评级值是“五”,我更改了评级实体,而不是使用1的“一”,因此,如果我输入1到5之间的任何数字都可以正常工作,但是如果我输入9,它不会进入后备计划,并且仍然会说“这不是有效的调查ID”
app.intent('First - fallback', (conv) => {
    const userSaid = conv.query;
    conv.close(userSaid);
});