Спросите разрешение через Dialogflow-выполнение между чтением списка - PullRequest
0 голосов
/ 05 декабря 2018

Я создаю агент, который может читать список данных из базы данных (Real Time Database на Firebase).С помощью контекста и параметров я могу запустить веб-крючок и получить нужные данные.

Но поскольку в результате получается список, выходной текст будет слишком длинным, чтобы произносить все данные за один раз, поэтому я хочукаждый раз возвращайте одного ребенка из списка и спрашивайте пользователя «Хотите ли вы прочитать следующий раздел?».Если пользователь скажет «Да», я продолжу читать также до конца.И если пользователь скажет «Нет», я вызову событие.

Для циклов я использую это:

ref.once('value', function(snapshot) {
   snapshot.forEach(function(childSnapshot) {
   var childKey = childSnapshot.key;
   var childData = childSnapshot.val();
   // ...
  });
});

(https://firebase.google.com/docs/database/web/lists-of-data#listen_for_value_events)

Но это даетвсе данные из списка в одном. Как вывести одни данные и спросить пользователя о разрешении, а затем перейти к следующим данным в списке? Мой вопрос, как мне запросить разрешение через выполнение Dialogflow между чтениемсписок, а затем продолжить список в соответствии с ответом, данным пользователем? Пожалуйста, напишите для каких-либо разъяснений.

1 Ответ

0 голосов
/ 05 декабря 2018

вы должны использовать комбинацию методов orderByValue () / orderByChild (), limitToFirst () и startAt (), чтобы ограничить количество возвращаемых вам записей.

orderByValue () / orderByChild () потребует свойство / дочерний элемент, определяющий порядок отображения элементов.

limitToFirst () определит, сколько строк вы ожидаете получить вкаждый вызов

startAt () будет нуждаться в значении поля, которое вы сортируете, и должен обновляться каждый раз, когда вы запрашиваете следующую группу строк.

вы можете прочитать больше об этих методах здесь

...