如何通过Firebase Cloud函数将数据写入/更新到多个子节点?

时间:2018-10-27 16:52:06

标签: node.js firebase firebase-realtime-database google-cloud-functions

我有一个看起来像这样的数据库:

enter image description here

我想为数据库中的所有用户在特定时间(例如12 AM)自动将Patient_ListCurrent_Token子级重置为0。

我浏览了Firebase云功能文档以及gitHub上的以下项目: Deleting nodesDelete unused user accounts using Cron。 以上两个示例均基于特定的UID更新和更改数据,即基于传递的UID仅更新特定的节点。 我想知道是否可以在所有节点中更新上述子元素的值,如果可以,将如何完成?

2 个答案:

答案 0 :(得分:1)

不可能有一个单独的update语句影响某个位置下所有数据库节点的子级。您将必须迭代所有节点(通过某种方式查询/读取),然后更新找到的每个节点。这可能是一项昂贵的带宽操作。

答案 1 :(得分:0)

仅使用常规引用,并在引用之前要更新的所有节点,如下所示:

var gralRef = firebase.database().ref();
var obj_update={};                              
obj_update[`users/${firstuser}/name`]='John';
obj_update[`users/${seconduser}/name`]='Mark';
obj_update[`users/${seconduser}/address`]='New York';   


gralRef.update(obj_update);