我想将实体放入 Firebase
I want to put Entities into Firebase
我想将实体放入 Firebase.I 使用 Google 的 Dialogflow。
我想将名称实体放入 Firebase 数据库中。
现在我的Javascript代码是
'use strict';
const functions = require('firebase-functions');
const {WebhookClient} = require('dialogflow-fulfillment');
const admin = require('firebase-admin');
admin.initializeApp({
credential:admin.credential.applicationDefault(),
databaseURL:'ws://app-name.firebaseio.com/',
});
process.env.DEBUG = 'dialogflow:debug';
exports.dialogflowFirebaseFulfillment = functions.https.onRequest((request, response) => {
const agent = new WebhookClient({ request, response });
console.log('Dialogflow Request headers: ' + JSON.stringify(request.headers));
console.log('Dialogflow Request body: ' + JSON.stringify(request.body));
function handleName(agent) {
const name = agent.parameters.name;
}
let intentMap = new Map();
intentMap.set('Default Welcome Intent', welcome);
intentMap.set('Default Fallback Intent', fallback);
agent.handleRequest(intentMap);
});
我 运行 我的代码,并向 DialogFlow 写入文字,但没有数据 Firebase.I 认为我的代码有误,但无法理解哪里出了问题。
我应该如何解决这个问题?
您显示的代码至少有两个问题:
虽然你有一个 handleName()
函数,它看起来是一个 Intent Handler,但你没有在你的 intentMap
.[=15= 中将它注册为一个 Handler ]
您的 handleName()
函数未对名称执行任何操作。特别是,它没有尝试将其保存在 Firebase 中。
地址 1,您需要添加一行
intentMap.set('Name Intent', handleName);
地址 2 取决于您的 firebase 结构,但可能类似于
function handleName(agent) {
const name = agent.parameters.name;
const ref = admin.database().ref('path/to/where/to/store/name');
return ref.set( name )
.then( () => {
agent.add("Data saved. What next?");
}
}
我想将实体放入 Firebase.I 使用 Google 的 Dialogflow。 我想将名称实体放入 Firebase 数据库中。
现在我的Javascript代码是
'use strict';
const functions = require('firebase-functions');
const {WebhookClient} = require('dialogflow-fulfillment');
const admin = require('firebase-admin');
admin.initializeApp({
credential:admin.credential.applicationDefault(),
databaseURL:'ws://app-name.firebaseio.com/',
});
process.env.DEBUG = 'dialogflow:debug';
exports.dialogflowFirebaseFulfillment = functions.https.onRequest((request, response) => {
const agent = new WebhookClient({ request, response });
console.log('Dialogflow Request headers: ' + JSON.stringify(request.headers));
console.log('Dialogflow Request body: ' + JSON.stringify(request.body));
function handleName(agent) {
const name = agent.parameters.name;
}
let intentMap = new Map();
intentMap.set('Default Welcome Intent', welcome);
intentMap.set('Default Fallback Intent', fallback);
agent.handleRequest(intentMap);
});
我 运行 我的代码,并向 DialogFlow 写入文字,但没有数据 Firebase.I 认为我的代码有误,但无法理解哪里出了问题。 我应该如何解决这个问题?
您显示的代码至少有两个问题:
虽然你有一个
handleName()
函数,它看起来是一个 Intent Handler,但你没有在你的intentMap
.[=15= 中将它注册为一个 Handler ]您的
handleName()
函数未对名称执行任何操作。特别是,它没有尝试将其保存在 Firebase 中。
地址 1,您需要添加一行
intentMap.set('Name Intent', handleName);
地址 2 取决于您的 firebase 结构,但可能类似于
function handleName(agent) {
const name = agent.parameters.name;
const ref = admin.database().ref('path/to/where/to/store/name');
return ref.set( name )
.then( () => {
agent.add("Data saved. What next?");
}
}