删除firebase文件夹中的所有文件?

时间:2018-03-07 10:26:14

标签: firebase web firebase-realtime-database

Firebase documentation on deleting data说:

  

删除数据

     

删除数据的最简单方法是在对该数据位置的引用上调用remove()。

     

您也可以通过将null指定为另一个写操作(如set()或update())的值来删除。您可以将此技术与update()一起使用,以在单个API调用中删除多个子项。

任何人都可以向我解释一下我认为最后一行是什么意思可以帮我删除firebase文件夹中的所有文件吗?

2 个答案:

答案 0 :(得分:3)

在Firebase中:

  • dataRef.remove()严格等同于dataRef.set(null)
  • dataRef.child('foo').remove()严格等同于dataRef.update({ foo: null })

这意味着设置或更新为null会有效删除该属性。

更新可用于以这种方式删除多个属性: 请考虑此示例Firebase对象:

exampleData = {
  foo: 'anyValue',
  bar: 'otherValue',
  baz: {
    aProp: true,
    anotherProp: false
  }
}

以下

db.ref('/exampleData').update( { bar: null, 'baz/aProp': null })

将导致以下对象:

exampleData = {
  foo: 'anyValue',
  baz: {
    anotherProp: false
  }
}

因此,您可以使用一个更新而不是多个删除(或设置)来删除多个属性。

答案 1 :(得分:0)

如果您的数据库中有此内容:

users: {
  user9266622: {
    id: 9266622,
    name: "SylvainC"
  },
  user209103: {
    id: 209103,
    name: "Frank van Puffelen"
  }
}

然后您可以使用以下内容删除特定属性:

firebase.database().ref("/users/user209103/name").remove();

您可以通过调用该分支顶部的remove()来删除整个分支。所以要删除"我的"整个档案:

firebase.database().ref("/users/user209103").remove();

我认为最后一个片段是您正在寻找的内容:它会删除/users/user209103及其下的所有内容。

您引用的文档的最后一行是关于在一次调用中更新/删除不同位置的多个分支/属性。例如,假设您要从两个配置文件中删除id属性(因为它们是冗余的)。你可以这样做:

firebase.database().ref().update({
  "/users/user9266622/id": null,
  "/users/user209103/id": null
});

这称为多地点更新,因为您需要按照完整路径更新两个位置。