Firebase自动重组数据库

时间:2017-10-17 02:28:03

标签: firebase firebase-realtime-database

我目前有一个拥有大约200个用户的应用程序,我正在尝试重构我的firebase数据库而不破坏功能,所以我可以扩展到其他学校。我打算在这之前推送所需的更新。

现在我的数据库看起来像这样

/用户/用户

/ otherproperty /对象

我正在尝试将所有内容移到一个大的“school”文件夹下,所以它看起来像这样。

学校/用户/用户

学校/ otherproperty /对象

有没有办法可以将我的firebase更改为这样?

2 个答案:

答案 0 :(得分:0)

您可以实现Firebase实时数据库触发器,只要在新数据层次结构中执行相同更新的旧数据层次结构下添加/修改/删除任何数据,就会触发该触发器。您还可以实现从新层次结构到旧层次结构执行相同更新的触发器。

然后,您可以将用户从旧层次结构迁移到新层次结构中,无论以何种速度/时间表对您最有意义。触发器将保持两个层次结构之间的数据一致性。

将所有用户迁移到新层次结构后,您可以删除触发器并仅使用新层次结构继续前进。

答案 1 :(得分:0)

使用相对少量数据最简单的方法是编写一个脚本来获取数据的快照并将其设置在新路径中。

let userRef = firebase.database().ref('users')
let newUserRef = firebase.database().ref('MYSCHOOL/users')

userRef.on('value', function(usersSnapshot) {
  newUserRef.set(usersSnapshot.val())
});

您还可以使用REST API并使用shallow queries获取单个密钥并以较小的块查询数据。