Dialogflow es 警告,根据GCLOUD\u项目估算Firebase配置。初始化firebase管理员可能会失败
我正在Dialogflow上构建一个机器人,我正在使用Dialogflow实现。但是,无论何时部署,我都会收到以下错误:Dialogflow es 警告,根据GCLOUD\u项目估算Firebase配置。初始化firebase管理员可能会失败,dialogflow-es,actions-on-google,Dialogflow Es,Actions On Google,我正在Dialogflow上构建一个机器人,我正在使用Dialogflow实现。但是,无论何时部署,我都会收到以下错误: Warning, estimating Firebase Config based on GCLOUD_PROJECT. Initializing firebase-admin may fail 我试图从代码中访问外部API。这样做对吗?或者错误是由于其他原因造成的 注:我是Dialogflow的新手 以下是index.js文件: 'use strict'; const
Warning, estimating Firebase Config based on GCLOUD_PROJECT. Initializing firebase-admin may fail
我试图从代码中访问外部API。这样做对吗?或者错误是由于其他原因造成的
注:我是Dialogflow的新手
以下是index.js文件:
'use strict';
const functions = require('firebase-functions');
const request = require('request');
const admin = require('firebase-admin');
admin.initializeApp();
const {dialogflow} = require('actions-on-google');
const app =dialogflow();
function helper() {
var username = '<USER_NAME>',
password = '<PASSWORD>',
sugar_id = '<SUGAR_ID>',
from_date = '2019-06-10',
to_date = '2019-06-11',
url1 = '<SOME_URL_HERE>',
auth = "Basic " + new Buffer.from(username + ":" + password).toString("base64");
return new Promise((resolve, reject)=> {
request(
{
url : url1,
headers : {
"Authorization" : auth,
'x-api-key': '<API_KEY>',
'x-source': '<X_SOURCE>'
}
},
(error, response, body) => {
if(error) throw error;
console.log('success 1');
// console.log(JSON.parse(response.body));
var obj = JSON.parse(body);
if(obj.data!==null) {
// console.log(obj.data[0].booking_id);
var latest_booking_id = obj.data[0].booking_id;
var url2 = '<SOME_URL_HERE>';
request(
{
url: url2,
headers : {
"Authorization" : auth,
'x-api-key': '<API_KEY>',
'x-source': '<X_SOURCE>'
}
},
(error, response, body) => {
if(error) throw error;
console.log('success 2');
var obj = JSON.parse(body);
if(error) reject(error);
console.log(obj);
resolve(obj);
}
);
} else {
console.log('No booking found.');
}
}
);
});
}
app.intent('customer details', (conv) => {
helper().then((res)=> {
conv.ask(res);
}).catch((err)=> {
throw (err);
});
});
exports.dialogflowFirebaseFulfillment = functions.https.onRequest(app);
这个问题可能会有帮助:。引用囚犯的回答:
在网络调用中使用承诺最简单的方法是使用包
比如。使用此选项,您的代码可能看起来
比如:
我注意到您需要在google库上执行操作。如果您正在为Google助手构建一个操作,那么在Google客户端库中查看操作可能会有所帮助
{
"name": "dialogflowFirebaseFulfillment",
"description": "This is the default fulfillment for a Dialogflow agents using Cloud Functions for Firebase",
"version": "0.0.1",
"private": true,
"license": "Apache Version 2.0",
"author": "Google Inc.",
"engines": {
"node": "8"
},
"scripts": {
"start": "firebase serve --only functions:dialogflowFirebaseFulfillment",
"deploy": "firebase deploy --only functions:dialogflowFirebaseFulfillment"
},
"dependencies": {
"actions-on-google": "^2.2.0",
"firebase-admin": "^5.9.1",
"firebase-functions": "^2.0.2",
"request": "^2.88.0"
}
}
var options = {
uri: url,
method: 'POST',
json: true,
headers: { ... }
};
return rp(options)
.then( body => {
var val = body.someParameter;
var msg = `The value is ${val}`;
agent.add( msg );
});