我正在构建一个聊天机器人,但在从 Dialogflow 的 Firebase 获取数据时遇到了麻烦。
我希望用户输入他的名字,该机器人可以查询Firebase并检查该名字是否存在。如果确实存在“用户存在” ,否则“用户n不在数据库中” 。
[这是当前正在使用的代码] [1]
function SaveName(agent){
const number = agent.parameters.number; // when I input the number in Fialogflow
const docRef = db.collection('names').doc(sessionId);
return docRef.get()
.then(doc => {
if (!doc.exists) {
agent.add('No data found in the database!');
console.log(doc);
} else {
agent.add(doc.data().orders);
}
return Promise.resolve('Read complete');
}).catch(() => {
agent.add('Error reading entry from the Firestore database.');
agent.add('Please add a entry to the database first by saying, "Write <your phrase> to the database"');
});
}
答案 0 :(得分:0)
configuring the fulfillment对您的代理人来说是可能的。
请注意,任何人都可以知道您的数据库中是否存在用户。 如果您要使用Google Assistant,请查看account linking。
答案 1 :(得分:0)
我遇到了一些类似的问题,即在代理交互中未显示所获取的详细信息。这也发生在给定here的模板上。然后,我从ReadFromFirestore Intent中删除了响应,并重新获得了预期的提取查询。我再次尝试通过将响应放回并调用intent来使响应在默认响应和Firestore查询响应之间交替进行。 不过,不保留它对我有用,并且思想也会对其他人有所帮助。