Как использовать agent.add ()? - PullRequest
0 голосов
/ 27 апреля 2019

Отображаются все журналы, которые отображаются с помощью console.log. Но агент не отображает ответ.

Я пытаюсь использовать обещание, но не знаю, как использовать его с этим кодом.

function combineCollection(agent) {

  console.log('At combineCollection');
    return admin.firestore().collection('House').where('userId','==',lineId).get().then(function(querySnapshot) {
      querySnapshot.forEach(function(doc) {
        console.log('find houseNo by userId');          
        houseNo = doc.id;
        console.log('houseNo in combinefunction: '+houseNo);
        console.log('before find invoice');
        invoice();
      });
    })
    .catch(function(error) {
        console.log('Error getting documents: ', error);
    });     
}


function invoice(){
    let price = 5;
  console.log('houseNo: '+houseNo);
 return admin.firestore().collection('Invoice').where('houseNo','==',houseNo).get().then(function(querySnapshot) {
      querySnapshot.forEach(function(doc) {
        console.log('find invoice by houseNo');
        console.log(doc.id, " => ", doc.data());
        price = doc.data().price;
        console.log(price);     // it's show
        agent.add(price);       // it's not show
      });
    })
    .catch(function(error) {
        console.log('Error getting documents: ', error);
    });    
}


 let intentMap = new Map();

 intentMap.set("aa",combineCollection);

1 Ответ

0 голосов
/ 20 мая 2019

В функции invoice () агент не определен или не получен в качестве параметра. Таким образом, он не может распознать функцию agent.add () и не может ответить. Добавьте агента в качестве параметра к вашей функции и попробуйте снова.

Также проверьте их для асинхронных вызовов:

для Dialogflow

для действий в Google

...