首页 > 解决方案 > 通过对话流代理从 Google Cloud Datastore 读取数据

问题描述

我是聊天机器人领域的新手。我需要开发一个对话流聊天机器人,它可以将从用户收集的数据存储到谷歌云数据存储实体(不是 Firebase 实时数据库),并在用户想要搜索时将其取回。

我可以将从用户收集的数据写入数据存储。但我正在努力检索数据。我正在对话框流内联编辑器中编写函数。

写函数:

  function order_pizza(agent) {
     var pizza_size = agent.parameters.size;
     var pizza_topping = agent.parameters.pizza_topping;
     var date_time = agent.parameters.size;
     const taskKey = datastore.key('order_item');
     const entity = {
       key: taskKey,
       data: {
       item_name: 'pizza',
       topping: pizza_topping,
       date_time: date_time,
       order_time: new Date().toLocaleString(),
       size: pizza_size }
      };
     return datastore.save(entity).then(() => {
               console.log(`Saved ${entity.key.name}: ${entity.data.item_name}`);
               agent.add(`Your order for ${pizza_topping} pizza has been placed!`);

            });
}

其中“order_item”是存储数据的种类(数据存储中的表)。它正在成功存储数据。

读取数据:(功能不工作)

  function search_pizza(agent){
    const taskKey = datastore.key('order_item');
    var orderid = agent.parameters.id;
    const query = datastore.createQuery('taskKey').filter('ID','=', orderid);
    return datastore.runQuery(query).then((result) =>{
    agent.add(result[0]);
    });
    
  }

这是我到目前为止所尝试的!无论我在哪里搜索,我都可以找到 firebase 实时数据库的结果。但找不到谷歌数据存储的解决方案!遵循了许多教程。但不能完全正确!请帮忙!

标签: google-cloud-platformgoogle-cloud-datastoredialogflow-eschatbot

解决方案


推荐阅读