从Firebase实时数据库中删除

时间:2017-12-20 12:54:32

标签: firebase firebase-realtime-database

我有这个数据库的结构:

帖子

-> Key
   -> PostId
   -> PostName
   -> PostDescription
   -> PostDescription2
   -> Location
   -> Author
   -> Date

-> Key
   ->
   ->
   .... 

某种方式PostDescription字段已在PostDescription2中重复,我有这样的节点,我想从所有节点中删除PostDescription2的所有条目。我怎样才能做到这一点 ?

我在google上进行了一些搜索,但大多数文章讲述了如何使用查询中的某些逻辑删除子节点或其中的字段。另外,我对firebase有点新鲜。

1 个答案:

答案 0 :(得分:0)

您需要执行此功能。 (这样接缝)删除代码的样本可能看起来像是:posts路径:

  var dB =  firebase.database();
  var dBRef =dB.ref('posts');
    dbRef.once('value', snpsht=>{
      snpsht.forEach(dp =>{
          var key = dp.key;
          dB.ref('posts/' +  key + '/PostDescription2').set(null);
      })
})

这将删除设置值为PostDescription2的所有null字段。考虑发布路径不是一个大数据,以避免阻止代码。如果是这样,您可以使用limitToLast选项获取数据,如:

var dBRef = dB.ref('posts').orderByChild('PostDescription2').limitToLast(1000);

此命令将按PostDescription2对列表进行排序,并且首先指定子键的空值。我们用上面的代码从最后1000个项目中收集。