Request.body.result не определен в коде firebase

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

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

    console.info(request.body.result.action);
    console.info(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.info('Added new user');
                    });
    elif
        {
        console.info("Specified action is not enabled");
        }
   }
 });

Здесь request.body.result после развертывания не определен, и что вызывает ошибку типа в операторах действий?

Я создал чат-бота, который собирает данные от пользователя и сохраняет их в базе данных. Для хранения данных я использовал базу данных firestore, которая выдает указанную выше ошибку, потому что request.body.result не определен. Пожалуйста, помогите!

Интеграция Angular - Firebase Analytics
Интеграция Angular - Firebase Analytics
Узнайте, как настроить Firebase Analytics и отслеживать поведение пользователей в вашем приложении Angular.
1
0
909
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы не включаете JSON, который вы получаете, который помог бы диагностировать проблему, но кажется вероятным, что ваш код использует V1 протокола выполнения, но ваш проект настроен на V2. Хотя вы можете переключить свой проект обратно на V1, было бы лучше, если бы вы переписали его, чтобы использовать V2.

В версии V2 request.body.result был заменен на request.body.queryResult. Хотя некоторые поля и имена полей изменились, action должен остаться прежним.

Другие вопросы по теме