面临的错误可能是因为 dialogflow 版本已更改。下面提到了来自 firebase 的错误它不起作用
The error facing Maybe it is because dialogflow version is changed. The error from firebase is mentioned below it is not working
const functions = require('firebase-functions');
// // Create and Deploy Your First Cloud Functions
// // https://firebase.google.com/docs/functions/write-firebase-functions
//
// exports.helloWorld = functions.https.onRequest((request, response) => {
// response.send("Hello from Firebase!");
// });
exports.dialogflowFirebaseFulfillment = functions.https.onRequest((request, response) => {
console.log("request.body.queryResult.parameters:", request.body.queryResult.parameters);
const parameters = request.body.queryResult.parameters;
response.send({
fulfillmentText:
`${parameters.given-name} your hotel booking request for ${parameters.RoomType} room is forwarded for
${parameters.person} persons, we will contact you on ${parameters.email} soon`
});
});
我在 Firebase 中遇到的错误是:
ReferenceError: name is not defined
at exports.dialogflowFirebaseFulfillment.functions.https.onRequest (/srv/index.js:17:33)
at cloudFunction (/srv/node_modules/firebase-functions/lib/providers/https.js:49:16)
at /worker/worker.js:783:7
at /worker/worker.js:766:11
at _combinedTickCallback (internal/process/next_tick.js:132:7)
at process._tickDomainCallback (internal/process/next_tick.js:219:9)
您正试图做一些 JavaScript 不允许的事情。查看此字符串的开头:
`${parameters.given-name} your hotel booking request for ${parameters.RoomType} room is forwarded for
您正在尝试将表达式 parameters.given-name
的值作为此处的值进行插值。但是,这并没有评估您期望的方式。该表达式告诉 JavaScript 从 parameters.given
中减去 name
的值。由于您没有名为 name
的变量,因此代码会因 "name is not defined".
而崩溃
如果您尝试从参数访问名为 "given-name" 的 属性,您应该这样做:
`${parameters['given-name']} ... `
const functions = require('firebase-functions');
// // Create and Deploy Your First Cloud Functions
// // https://firebase.google.com/docs/functions/write-firebase-functions
//
// exports.helloWorld = functions.https.onRequest((request, response) => {
// response.send("Hello from Firebase!");
// });
exports.dialogflowFirebaseFulfillment = functions.https.onRequest((request, response) => {
console.log("request.body.queryResult.parameters:", request.body.queryResult.parameters);
const parameters = request.body.queryResult.parameters;
response.send({
fulfillmentText:
`${parameters.given-name} your hotel booking request for ${parameters.RoomType} room is forwarded for
${parameters.person} persons, we will contact you on ${parameters.email} soon`
});
});
我在 Firebase 中遇到的错误是:
ReferenceError: name is not defined
at exports.dialogflowFirebaseFulfillment.functions.https.onRequest (/srv/index.js:17:33)
at cloudFunction (/srv/node_modules/firebase-functions/lib/providers/https.js:49:16)
at /worker/worker.js:783:7
at /worker/worker.js:766:11
at _combinedTickCallback (internal/process/next_tick.js:132:7)
at process._tickDomainCallback (internal/process/next_tick.js:219:9)
您正试图做一些 JavaScript 不允许的事情。查看此字符串的开头:
`${parameters.given-name} your hotel booking request for ${parameters.RoomType} room is forwarded for
您正在尝试将表达式 parameters.given-name
的值作为此处的值进行插值。但是,这并没有评估您期望的方式。该表达式告诉 JavaScript 从 parameters.given
中减去 name
的值。由于您没有名为 name
的变量,因此代码会因 "name is not defined".
如果您尝试从参数访问名为 "given-name" 的 属性,您应该这样做:
`${parameters['given-name']} ... `