减少所有儿童firebase的变量值

时间:2017-06-10 19:00:07

标签: javascript node.js firebase

如何在Firebase云功能中更新所有孩子的子值?我使用正则表达式和AngularFire找到了其他答案,并且在单个级别上进行了一些更新(这是2级)但是有没有办法快速减少某个键的所有子变量?例如:

database -
     posts -
       RaNd_0MK3y1-
          variable: x
       RaNd_0MK3y2
          variable: y

并在调用云函数时将variable的所有值减1?

1 个答案:

答案 0 :(得分:1)

这完全按照文档中的描述完成,而不是任何令人惊讶的事情。这里没有魔力。

const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().database);

// later inside your function call
const ref = admin.database().ref('database/posts');
ref.once('value').then(snap => {
   snap.forEach(ss => {
      ss.ref.transaction(val => (val||0) + 1);
   });
});

但您可能想要做的是编写一个在更新单个项目时触发的函数,然后以更一对一的方式更新它们。没有用例很难分辨。请务必查看the XY problem