0

can someone help me with dialogflow cx webhooks and add data to Firestore, this is my index.js code but it does not store in the database. Thanks Hello, can someone help me with dialogflow cx webhooks and add data to Firestore, this is my index.js code but it does not store in the database. Thanks

const Firestore = require('@google-cloud/firestore');
const PROJECTID = 'ia-proyecto';
const firestore = new Firestore({
  projectId: PROJECTID,
  timestampsInSnapshots: true,
});

exports.db_datos_personales = (req, res) => {

  function replaceAll(string, search, replace) {
    return string.split(search).join(replace);
  }

  console.log('Dialogflow Request body: ' + JSON.stringify(req.body));
  let tag = req.body.fulfillmentInfo.tag;
  console.log('Tag: ' + tag);
  console.log('Session Info Parameters: ' + JSON.stringify(req.body.sessionInfo.parameters));

  // 
  if (tag === 'nombre') {
    const COLLECTION_NAME = 'Datos_Personales';
    let Nombre_Usuario = replaceAll(JSON.stringify(req.body.sessionInfo.parameters['nombre_usuario']), '"', '');
    let Ciudad_Usuario = replaceAll(JSON.stringify(req.body.sessionInfo.parameters['ciudad_usuario']), '"', '');
    console.log('Nombre usuario: ' + Nombre_Usuario);
    console.log('Ciudad usuario: ' + Ciudad_Usuario);
    const data = {
      Nombre_Usuario: Nombre_Usuario,
      Ciudad_Usuario: Ciudad_Usuario,
    };

    console.log(JSON.stringify(data));
    var answer = 'Welcome to the Cloud Audio family, '+ Nombre_Usuario +'! Enjoy our services.';
    return firestore.collection(COLLECTION_NAME)
      .set(data)
      .then(doc => {
        return res.status(200).send({
          fulfillmentResponse: {
            messages: [{
              text: {
                text: [answer]
              }
            }]
          }
        });
      }).catch(err => {
        console.error(err);
        return res.status(404).send({ error: 'unable to store', err });
      });

  //   
} else if (tag === 'pregunta') {
  const COLLECTION_NAME = 'Pregunta_Usuario';
  let pregunta_usuario = replaceAll(JSON.stringify(req.body.sessionInfo.parameters['pregunta_usuario']), '"', '');
  console.log('Pregunta Usuario: ' + pregunta_usuario);

  const data = {
  pregunta_usuario: pregunta_usuario
};
console.log(JSON.stringify(data));
var answer = 'Your plan has been changed to the '+ pregunta_usuario + ' service.';
return firestore.collection(COLLECTION_NAME)
  .doc(phone_number)
  .update(data)
  .then(doc => {
    return res.status(200).send({
      fulfillmentResponse: {
        messages: [{
          text: {
            text: [answer]
          }
        }]
      }
    });
  }).catch(err => {
    console.error(err);
    return res.status(404).send({ error: 'unable to update field', err });
  });
}
};

I hope to have a solution, since I was more than a week and I can't find anything.

0 Answers0