hi firebase函数我想更改多个子项,但无法更改用户id下的所有子项。你能帮助我了解这个主题吗
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
var database = admin.database();
exports.newNodeDetected = functions.database.ref('system/{userId}/value')
.onWrite((Change) =>{
var oldDeger = Change.before.val();
var newDeger = Change.after.val();
if (newDeger === '0'){
database.ref(`system/${userId}/value`).set('1');
}
})
在此处输入图像描述
您可以使用标准对象操作和直接写入以多种方式更新多个子项,如问题中所示。在更新多个字段时,您可能有兴趣使用update
而不是set
。
您还会注意到,我添加了一个Context
字段,允许您访问参考路径中的用户ID等信息和其他信息:Source
exports.newNodeDetected = functions.database.ref('system/{userId}/value')
.onWrite((Change, Context) =>{
var oldDeger = Change.before.val();
var newDeger = Change.after.val();
if (newDeger === '0'){
database.ref(`system/${Context.params.userId}/value`).set('1');
database.ref(`system/${Context.params.userId}/otherField`).update({another:field});
}
})
资源:媒体文章:实时设置Vs更新