使用Firebase CLI更新实时数据库中集合的每个节点中的项目

时间:2019-03-27 07:30:27

标签: firebase firebase-realtime-database firebase-cli

我们想要更新的Firebase实时数据库中有一组配置文件。结构简单

/个人资料

  • abc { key1: value, key2: value }
  • deg { key1: value, key2: value }
  • xyz { key1: value, key2: value }

每个项目都是一个具有一些键/值对的对象,我们想为集合中的所有项(其中约5000个)添加一个新的键/值对,以便: / p>

  • abc { key1: value, key2: value, key3: value }
  • deg { key1: value, key2: value, key3: value }
  • xyz { key1: value, key2: value, key3: value }

是否可以使用Firebase CLI database:push或database:set方法来执行此操作?

谢谢

2 个答案:

答案 0 :(得分:1)

要能够更新数据库中的项目,您必须知道该项目的完整路径。因此,要更新位置的所有子节点,您需要:

  1. 在该位置读取数据
  2. 遍历子节点
  3. 更新每个子节点

Firebase CLI中对此没有内置的单个操作,尽管您可以通过将datbase:getdatabase:update commands与一个遍历自定义脚本的脚本组合在一起来进行组合子节点。

我个人更喜欢用常规代码来完成这些操作,因为用JavaScript编写这样的更新循环非常容易(这样它就可以在浏览器或Node.js上运行)。在此处查看示例,我的答案是:Update all child in Firebase

答案 1 :(得分:0)

是的,有一种方法。使用update

伪代码

let data = {};
// push key3 data 
for loop profile_name {
   data[`profiles/${profile_name}/key3`] = key3_value;
}
ref.update(data);

我不确定限制。你可以在这里阅读更多 https://firebase.google.com/docs/database/admin/save-data