如何在Firebase云功能中更新所有孩子的子值?我使用正则表达式和AngularFire找到了其他答案,并且在单个级别上进行了一些更新(这是2级)但是有没有办法快速减少某个键的所有子变量?例如:
database -
posts -
RaNd_0MK3y1-
variable: x
RaNd_0MK3y2
variable: y
并在调用云函数时将variable
的所有值减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。