Firebase RTDB:从 CLI 更新/合并新数据与旧数据

2024-02-02

我有多个(大)JSON 文件想要添加到 Firebase 实时数据库 (RTBD)。我正在使用 Geofire,因此所有子节点都需要位于同一父节点下。我正在存储静态地理数据,但我想定期分段刷新它。如果我无法分段刷新它,那么始终保证我正在更新的一个大 JSON 始终 100% 完整就会成为问题。

我想要的数据结构是这样的:

{"parent" : {"child_a" : 1, "child_b" : 2}

我的第一个 JSON 看起来像这样

$ cat 1.json
{"parent": {"child_a" : 1 }}

我的第二个是这样的

$ cat 2.json
{"parent": {"child_b" : 2 }}

我尝试过使用firebase-import--merge flag:

$ firebase-import --database_url https://my_db.firebaseio.com/ --path / --json 2.json --service_account auth.json --merge

并且还尝试使用firebase-tools带有更新标志:

$ firebase database:update / 2.json

但两者都从数据库中删除 1.json 的内容,并给我这个

{"parent": {"child_b" : 2 }}

如何将多个 JSON 文件合并到同一个节点中,而不覆盖之前的 JSON 内容?


部分答案:使用set with merge, shown here https://stackoverflow.com/a/47554197/2327328消防用store。但是我怎样才能用 CLI 和 Fire 做到这一点base?


根据来自的评论Doug https://stackoverflow.com/users/807126/doug-stevenson,

我可以将单独的键添加到parent通过从 JSON 中删除顶级父节点,然后将其添加到firebase-import命令。

所以从问题中的例子来看,没有parentJSON 文件中的节点以及parent中的节点--path导入声明的标志

$ cat 1.json
{"child_a" : 1 }

$ firebase-import --database_url https://my_db.firebaseio.com/ --path /parent --json 1.json --service_account auth.json --merge

and

$ cat 2.json
{"child_b" : 2 }

$ firebase-import --database_url https://my_db.firebaseio.com/ --path /parent --json 2.json --service_account auth.json --merge

按我需要的方式提供数据:

{"parent" : {"child_a" : 1, "child_b" : 2}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Firebase RTDB:从 CLI 更新/合并新数据与旧数据 的相关文章

随机推荐