我创建了一个 android 应用程序,如果在其中按下按钮并在 Firebase 数据库 (0/1) 中更改值,我想使用谷歌助手执行此操作,请帮助我,我搜索但没有找到任何相关指南请帮帮我
3 回答
执行此操作的代码非常简单 - 在您的 webhook 实现中,您需要一个 Firebase 数据库对象,我fbdb
在下面调用它。在您的 Intent 处理程序中,您将获得对要更改的位置的引用并进行更改。
在 Javascript 中,这可能看起来像这样:
app.intent('value.update', conv => {
var newValue = conv.prameters.value;
var ref = fbdb.ref('path/to/value');
return ref.set(newValue)
.then(result => {
return conv.ask(`Ok, I've set it to ${newValue}, what do you want to do now?`);
})
.catch(err => {
console.error( err );
return conv.close('I had a problem with the database. Try again later.');
});
return
});
您遇到的真正问题是您要使用哪个用户进行更新。您可以使用管理员级别的连接来执行此操作,这可以为您提供超出安全规则允许范围的广泛访问权限。请参阅身份验证指南并小心。
我实际上正在使用 Dialogflow webhook 和集成的 Firebase 数据库开发一个项目。为了使这成为可能,您必须使用 JSON 格式的实现(您不能以您正在做的方式调用 firebasedatabase)
这是一个调用 firebase 数据库并在函数上显示简单文本的示例。首先,您必须从 json 中获取变量 .. 它类似于此(在我的情况下,这取决于您的实体名称,在我的情况下是“tema”)
var concepto = request.body.queryResult.parameters.tema;
然后在你的函数中:
'Sample': () => {
db.child(variable).child("DESCRIP").once('value', snap => {
var descript = snap.val(); //firebasedata
let responseToUser = {
"fulfillmentMessages": [
{ //RESPONSE FOR WEB PLATFORM===================================
'platform': 'PLATFORM_UNSPECIFIED',
"text": {
"text": [
"Esta es una respuesta por escritura de PLATFORM_UNSPECIFIED" + descript;
]
},
}
]
}
sendResponse(responseToUser); // Send simple response to user
});
},
这些是格式化 json 的链接: Para formatear JSON:
A) https://cloud.google.com/dialogflow-enterprise/docs/reference/rest/Shared.Types/Platform
B)https://cloud.google.com/dialogflow-enterprise/docs/reference/rest/Shared.Types/Message#Text
最后,这是一个很有帮助的样本!! https://www.youtube.com/watch?v=FuKPQJoHJ_g
美好的一天!
搜索后,我找到了可以对此提供帮助的指南:
- 我们需要首先在 dialogflow/api.pi 上创建聊天机器人
- 然后需要训练我们的机器人并需要使用 webhook 作为响应。
- 现在我们需要设置 firebase-tools 来发送回复并在 firebase 数据库中进行更改。
- 最后,我们需要使用 google-actions 将 dialogflow 与谷歌助手集成
这是我使用的示例代码:
`var admin = require('firebase-admin');
const functions = require('firebase-functions');
admin.initializeApp(functions.config().firebase);
var database = admin.database();
// // Create and Deploy Your First Cloud Functions
// // https://firebase.google.com/docs/functions/write-firebase-functions
//
exports.hello = functions.https.onRequest((request, response) => {
let params = request.body.result.parameters;
database.ref().set(params);
response.send({
speech: "Light controlled successfully"
});
});`