我正在使用Dialogflow中的Google助手做一个项目。当我请求数据时,例如,如果我要求使用注册号RegId获取学生详细信息,如果我使用键盘输入注册号,我将获得数据。但是,如果我说注册号,比如191611238,它不是在谷歌助手中获取数据。
function handleGetthedetailsofRegisternumber(agent){
const RegId = agent.parameters.RegId;
agent.add("please wait");
var ref = admin.database().ref().child("Table/");
var query = ref.orderByChild("RegId").equalTo(RegId.toString());
return query.once("value",function(snapshot) {
snapshot.forEach(function(child) {
console.log(child.key);
// name field
console.log("FirstName: " + child.val().FirstName);
console.log("Mobile: " + child.val().MobileNumber);
console.log("Email: " + child.val().EmailId);
agent.add(`The student name is ` + child.val().FirstName);在这里,如果我说获取191611238的学生数据,它将只显示“请等待”,而不会执行其他部分。
如果我手动输入注册号,而不是使用语音,我将获得学生FirstName。
我想通过语音和手动两种方式获取数据。但是,如果我使用语音,我无法获取数据。
发布于 2019-08-31 02:16:58
当你说出数字时,似乎你的意图没有正确地捕捉到它-只有在你键入它的时候。您可能需要添加额外的调试,以查看通过语音尝试调用的意图以及调用的值。
这可以像在代码中添加调试一样简单,如下所示:
const RegId = agent.parameters.RegId;
console.log('RegId',RegId);您还可以打开记录到Google Cloud,它将记录Dialogflow获得的每个请求和响应,并将其发送到fulfillment。为此,请选择齿轮图标,然后向下滚动并确保启用了"Log interactions to Google Cloud“。然后,您可以通过转到此项目的Google Cloud控制台或单击交换机旁边的链接来查看日志。

https://stackoverflow.com/questions/57729535
复制相似问题