【发布时间】:2020-09-14 09:27:50
【问题描述】:
我正在尝试将新数据字段添加到 firebase 实时数据库中的现有列表中。我正在使用 push() 在我的一个函数中生成唯一 ID。 在下一个函数中,如何将新数据映射到相同的唯一 ID 下,以便将新数据附加到相同的 ID 下。 以下是实现代码:
function reportHandler(agent){
const t2 = agent.parameters.name;
const t3 = agent.parameters.college;
const t4 = agent.parameters.branch;
const t5 = agent.parameters.year;
return admin.database().ref('data').push().set({
name: t2,
college: t3,
branch: t4,
year: t5
});
此代码完美运行,并在数据库中创建了一个唯一的 ID 字段。我接下来要做的是将新数据添加到之前创建的唯一 ID 字段中。
function detailsHandler(agent){
const t1 = agent.parameters.prtype;
const t6 = agent.parameters.desc;
const t7 = agent.parameters.when;
return admin.database().ref('data').push().set({
prtype: t1,
desc: t6,
when: t7
});
这是另一个具有一些值的函数。我希望将这两个函数中的值放入一个具有唯一 ID 的字段中。
我用这个调用函数
let intentMap = new Map();
intentMap.set('Report', reportHandler);
intentMap.set('Report.details', detailsHandler);
agent.handleRequest(intentMap);
【问题讨论】:
-
要清楚(因为这是标记为 dialogflow) - 这两个更新将在不同的 Intent 处理程序中完成?所以你没有从同一个 Intent 中得到“name”和“desc”的值,对吗? (如果这个假设不正确 - 显示有问题的 Intent,以及您如何注册处理程序,或者如何调用这些函数,将帮助我们帮助您。)
-
是的,它们是两个不同的意图处理程序。 “name”和“desc”的值来自不同的意图。
标签: node.js firebase firebase-realtime-database dialogflow-es dialogflow-es-fulfillment