我正在创建一个代理,它可以从数据库(Firebase 上的实时数据库)中读取数据列表。通过上下文和参数,我可以触发 webhook 并获取我想要的数据。
但是因为结果是一个List,所以输出的文本会太长,不能一次性说出所有的数据,所以我想每次从列表中返回一个孩子,问用户“你想看下一节吗?” . 如果用户说“是”,我将继续阅读直到最后。如果用户说“不”,我会触发一个事件。
对于循环我使用这个:
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-fulfillment 请求许可,然后根据用户给出的响应继续列表?请写信以获得任何澄清。