使用 Firebase CLI 更新实时数据库中集合的每个节点中的项目
Update item in each node of a collection in a Realtime Database using Firebase CLI
我们在 Firebase 实时数据库中有一组配置文件,我们想要更新。结构简单
/配置文件
- abc
{ key1: value, key2: value }
- 度
{ key1: value, key2: value }
- xyz
{ key1: value, key2: value }
每个项目都是一个包含一些 key/value 对的对象,我们想向集合中的 all 项目添加一个新的 key/value 对(大约 5000 个)因此:
- abc
{ key1: value, key2: value, key3: value }
- 度
{ key1: value, key2: value, key3: value }
- xyz
{ key1: value, key2: value, key3: value }
有没有办法使用 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
要能够更新数据库中的项目,您必须知道该项目的完整路径。因此,要更新位置的所有子节点,您需要:
- 读取该位置的数据
- 迭代子节点
- 更新每个子节点
在 Firebase CLI 中没有针对此的内置单一操作,尽管您可以通过将 datbase:get
和 database:update
commands 与自定义脚本组合来组合它遍历子节点。
我个人更喜欢用常规代码来做这些,因为在 JavaScript 中编写这样的更新循环非常容易(这样它就可以 运行 在浏览器中,或者在 Node.js).举个例子,我的答案在这里:.
我们在 Firebase 实时数据库中有一组配置文件,我们想要更新。结构简单
/配置文件
- abc
{ key1: value, key2: value }
- 度
{ key1: value, key2: value }
- xyz
{ key1: value, key2: value }
每个项目都是一个包含一些 key/value 对的对象,我们想向集合中的 all 项目添加一个新的 key/value 对(大约 5000 个)因此:
- abc
{ key1: value, key2: value, key3: value }
- 度
{ key1: value, key2: value, key3: value }
- xyz
{ key1: value, key2: value, key3: value }
有没有办法使用 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
要能够更新数据库中的项目,您必须知道该项目的完整路径。因此,要更新位置的所有子节点,您需要:
- 读取该位置的数据
- 迭代子节点
- 更新每个子节点
在 Firebase CLI 中没有针对此的内置单一操作,尽管您可以通过将 datbase:get
和 database:update
commands 与自定义脚本组合来组合它遍历子节点。
我个人更喜欢用常规代码来做这些,因为在 JavaScript 中编写这样的更新循环非常容易(这样它就可以 运行 在浏览器中,或者在 Node.js).举个例子,我的答案在这里: