当我可以访问与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秒,这是非常慢的,用户赢了'及时得到答复!
答案 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);
});