firebase代码中未定义request.body.result

firebase代码中未定义request.body.result,firebase,firebase-realtime-database,google-cloud-firestore,chatbot,dialogflow-es,Firebase,Firebase Realtime Database,Google Cloud Firestore,Chatbot,Dialogflow Es,在这里,部署后request.body.result是未定义的,在action语句中哪个抛出类型错误 我已经创建了一个聊天机器人,它收集用户的详细信息并将其存储在数据库中。为了存储详细信息,我使用了firestore数据库,该数据库抛出上述错误,因为request.body.result未定义。请帮助 您没有包含您得到的JSON,这将有助于诊断问题,但您的代码似乎使用了实现协议的V1,但您的项目设置为V2。虽然您可以将项目切换回V1,但如果您将其重写为使用V2会更好 在V2下,request.b

在这里,部署后request.body.result是未定义的,在action语句中哪个抛出类型错误


我已经创建了一个聊天机器人,它收集用户的详细信息并将其存储在数据库中。为了存储详细信息,我使用了firestore数据库,该数据库抛出上述错误,因为request.body.result未定义。请帮助

您没有包含您得到的JSON,这将有助于诊断问题,但您的代码似乎使用了实现协议的V1,但您的项目设置为V2。虽然您可以将项目切换回V1,但如果您将其重写为使用V2会更好

在V2下,
request.body.result
已替换为
request.body.queryResult
。虽然某些字段和字段名称已更改,
操作
仍应相同

const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);

exports.dialogflowFirebaseFulfillment = functions.https.onRequest((request, response) => {
    console.log('Request headers: ' + request.headers);
    console.log('Request body: ' + JSON.stringify(request.body));

    console.log(request.body.result.action);
    console.log(JSON.stringify(request.body.result.action));

    let action = request.body.result.action;
    let query = request.body.result.resolvedQuery;

   const parameters = request.body.result.parameters; 

    const inputContexts = request.body.result.contexts;

    if(action === 'save.name'){

                    admin.firestore().collection('users').add({
                        name: name
                    }).then(ref => {
                        console.log('Added new user');
                    });
    elif
        {
        console.log("Specified action is not enabled");
        }
   }
 });