【发布时间】:2017-08-09 12:00:03
【问题描述】:
您好,我开始使用 firebase 函数向我的 android 应用程序添加一些后端逻辑我想使用一些不同于事件数据值的值
exports.makeUppercase = functions.database.ref('path')
.onWrite(event => {
const original = event.data.val();
//I want to use value like this.
const other_val= root.database.ref('path').val();
console.log('email', "firms", original);
const uppercase = original.toUpperCase();
return event.data.ref.parent.child('uppercase').set(uppercase);
});
我想使用 other_valwith 事件数据,但到目前为止我只使用事件数据 ref,但我可以使用更多父或子在数据库 event.data.ref 中上升或下降。我该如何解决?
编辑: 感谢@davidtaubmann 的回答,我尝试学习正确的方法。
exports.makeUppercase = functions.database.ref('/nonVerifiedUsers/{email}')
.onWrite(event => {
var changed= "";
// You can use ref parameter like this
var param=event.params.email;
admin.database().ref('/uppercase').once('value').then(function(snap){
changed=snap.val();
}).then(function(){
/*if you want to use changed value wait until it return and return where
you want using admin.database.ref and use event parameter in reference like
this*/
return admin.database.ref('/path/').child(param).set(changed);
/*You can return regular event data but make sure you didn't write under
same reference server count this again as event and loop until reach 32 th child(maxiumum child nodes)*/
return event.data.ref.parent.child('uppercase').set(changed);
});
//In addition you can return multiple times in one function:
return event.data.ref.parent.child('dif').set(changed);
});
【问题讨论】:
-
我相信如果你需要和产生写的用户不同的访问权限,你需要adminRef,我和你的情况一样,但是从来没想过用父级升序降序,我会尝试这样解决。
-
我刚刚发现在functions文件夹的node-modules里面有一个firebase-admin模块,如果我们确保它在functions package.json文件中被激活并且在开始的时候初始化它index.js,我们可能会直接从函数构造中使用它...我将在接下来的几个小时内测试这两种可能性。
-
正如我在 cmets 中所说的那样...尝试将
admin.database().ref('uppercase').on('value',function(snap){更改为admin.database().ref('uppercase').once('value').then(function(snap){ -
如何从快照中分配全局变量值,Ogulcan 分配 var changed 的方式对我不起作用。
标签: node.js firebase firebase-realtime-database google-cloud-platform google-cloud-functions