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

Update item in each node of a collection in a Realtime Database using Firebase CLI

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

/配置文件

每个项目都是一个包含一些 key/value 对的对象,我们想向集合中的 all 项目添加一个新的 key/value 对(大约 5000 个)因此:

有没有办法使用 Firebase CLI database:push 或 database:set 方法来做到这一点?

谢谢

是的,有办法。使用 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

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

  1. 读取该位置的数据
  2. 迭代子节点
  3. 更新每个子节点

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

我个人更喜欢用常规代码来做这些,因为在 JavaScript 中编写这样的更新循环非常容易(这样它就可以 运行 在浏览器中,或者在 Node.js).举个例子,我的答案在这里:.