Firebase功能访问不相关的数据

时间:2017-09-24 22:02:53

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

当我可以访问与firebase函数中的触发器数据无关的数据库元素时,我正在寻找一种方法。 正如我所见,我可以在其他元素上设置(...)但不幸的是我无法从元素中读取值,例如这不起作用:

event.data.adminRef.root.child('bettings/'+matchId+'/begin_at').val()

我知道'正确的方式'得到那些东西,就像:

var match = event.data.adminRef.root.child('bettings/' + matchId + '/begin_at');
match.once('value',function(snapshot){
    var alma = snapshot.val();
    console.log('alma val');
    console.log(alma);
});

但是我希望有一种更好/更简单的方法,然后在我需要现有范围之外的时候编写这样的代码。

更新:它不是How to read any data from database on its write trigger on one of its child in firebase functions?的副本! 我知道....曾经(...),我可以通过承诺访问价值观,但我需要更快的方式,因为有时它需要大约10秒,这是非常慢的,用户赢了'及时得到答复!

1 个答案:

答案 0 :(得分:0)

以下是从特定数据库节点访问数据并使用值jobowner执行任务的示例:

let jobRef = admin.database().ref(`/jobs/${jobid}`);
const jo = jobRef.child("owner").once('value');
return Promise.all([jo]).then(r => {
  const jobowner = r[0];
  const promises = [];
  let key = admin.database().ref(`/jobowners/${jobowner}`).set({
    value: 'test',
    other: false
  });
  promises.push(room);
  return Promise.all(promises);
});