Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dialogflow和firebase未连接_Firebase_Dialogflow Es - Fatal编程技术网

Dialogflow和firebase未连接

Dialogflow和firebase未连接,firebase,dialogflow-es,Firebase,Dialogflow Es,您好,我已经创建了一个dialogflow代理,它应该从用户那里捕获信息并将其存储在实时firebase数据库中。以下是内嵌编辑器代码 const functions=require('firebase-functions'); const{WebhookClient}=require('dialogflow-fulfillment'); const{Card,Suggestion}=require('dialogflow-fulfillment'); //初始化数据库连接 const admi

您好,我已经创建了一个dialogflow代理,它应该从用户那里捕获信息并将其存储在实时firebase数据库中。以下是内嵌编辑器代码

const functions=require('firebase-functions');
const{WebhookClient}=require('dialogflow-fulfillment');
const{Card,Suggestion}=require('dialogflow-fulfillment');
//初始化数据库连接
const admin=require('firebase-admin');
admin.initializeApp({
凭据:admin.credential.applicationDefault(),
databaseURL:'ws:数据库URL',
});
process.env.DEBUG='dialogflow:DEBUG';//启用lib调试语句
exports.dialogflowFirebaseFulfillment=functions.https.onRequest((请求,响应)=>{
const-agent=new-WebhookClient({request,response});
log('Dialogflow请求头:'+JSON.stringify(Request.headers));
log('Dialogflow请求主体:'+JSON.stringify(Request.body));
功能欢迎(代理){
agent.add(`Welcometomyagent!`);
}
功能手册(代理){
const age=agent.parameters.person;
返回admin.database().ref('ageInfo')。一次(“值”)。然后((快照)=>{
var averageAge=snapshot.child(“runningAverage”).val();
agent.add(`我们记录的平均年龄是`+平均年龄);
});
}
让intentMap=newmap();
intentMap.set('Default Welcome Intent',Welcome);
intentMap.set('Default Fallback Intent',Fallback);
intentMap.set('1_1_name',手册);
//intentMap.set('yourtintent name here','yourFunctionHandler');
//intentMap.set('your intent name here',googleAssistantHandler);
代理handleRequest(intentMap);
});

我已启用数据库设置和读写权限。但是webhook仍然失败,唯一的错误是时间流逝。我有一个想法,管理员凭据部分可能是错误的,但我不知道如何纠正它。如果您有任何帮助,我们将不胜感激

您正在使用错误的凭据初始化与DB的连接。试着这样做:

admin.initializeApp();
似乎
admin.credential.applicationDefault()
不适合您。不要默认设置它们,而是将其保留为空
admin.initializeApp()
或使用
admin.credential.applicationDefault()
可以查看函数文档,了解可以传递哪些参数

这是我使用的包.json

{
“名称”:“dialogflowFirebaseFulfillment”,
“说明”:“这是Dialogflow代理使用Firebase云功能的默认实现方式”,
“版本”:“0.0.1”,
“私人”:没错,
“许可证”:“Apache 2.0版”,
“作者”:“谷歌公司”,
“发动机”:{
“节点”:“8.13.0”
},
“脚本”:{
“开始”:“firebase服务--仅功能:dialogflowFirebaseFulfillment”,
“部署”:“firebase部署--仅功能:dialogflowFirebaseFulfillment”
},
“依赖项”:{
“谷歌行动”:“2.0.0-alpha.4”,
“firebase管理员”:“^5.12.1”,
“firebase功能”:“^1.0.3”,
“dialogflow”:“^0.1.0”,
“dialogflow实现”:“0.3.0-beta.3”
}
}
文件 您还可以查看这些其他文档,以获取有关Node.JS firebase SDK的更多信息