5

我有多个(大)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

$ 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 文件合并到同一个节点中?


部分答案:使用setwith merge此处显示为 Fire store。但是如何使用 CLI 和 Fire base来做到这一点?

4

1 回答 1

2

根据Doug的评论,

parent我可以通过从我的 JSON 中删除顶级父节点,然后将其添加到firebase-import命令中,在多个步骤中将单个键添加到节点,而不会覆盖现有的子节点。

因此,从问题中的示例来看,parentJSON 文件中没有节点,并且import 语句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

$ 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}
于 2018-06-25T19:21:52.960 回答