Firebase云功能:读取数据库

时间:2017-10-05 13:52:29

标签: firebase-realtime-database google-cloud-functions

我目前正在使用Firebase云功能与Api.ai和Google助手SDK一起使用。

到目前为止我所做的是这个简单的回答:

  function setMachine (app) {
    let mach_id = app.getArgument(MACHINE_ARGUMENT);
    app.tell('Machine ID is'+mach_id );

这很棒!助理用正确的参数回答我!

现在我想回复数据库中的数据。

我尝试了两种不同的路径:

1)使用数据库REST api:

let url = 'https://myprojectID.firebaseio.com/machine/'+mach_id+'/value.json'
var xmlHttp = new XMLHttpRequest();
    xmlHttp.open( "GET", url, false ); // false for synchronous request
    xmlHttp.send( null );
     app.tell('Result: '+xmlHttp.responseText);

结果: 我收到错误500:new XMLHttpRequest

2)尝试使用:

const admin = require('firebase-admin');
admin.database().ref('machine/'+mach_id+'/value').once('value', (snapshot) => {
        var event = snapshot.val();   
        app.tell('Result: '+event);
   });

但这也会给出错误500

1 个答案:

答案 0 :(得分:0)

经过一些测试,我发现语法不正确,这是正确的:

    admin.database().ref('/machine/'+mach_id+'/value').once('value').then(function(snapshot) {
     var event = snapshot.val();   
        app.tell('Result: '+event);
   });