【问题标题】:Deleting all files in a firebase folder?删除firebase文件夹中的所有文件?
【发布时间】:2018-03-07 10:26:13
【问题描述】:

Firebase documentation on deleting data 说:

删除数据

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

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

谁能向我解释一下我认为最后一行是什么意思可以帮助我删除 firebase 文件夹中的所有文件?

【问题讨论】:

    标签: firebase web firebase-realtime-database


    【解决方案1】:

    在 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
      }
    }
    

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

    【讨论】:

      【解决方案2】:

      如果你的数据库中有这个:

      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();
      

      我认为最后一个 sn-p 是您要寻找的:它删除了 /users/user209103 及其下的所有内容。

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

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

      这称为多位置更新,因为您通过完整路径更新两个位置。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-11-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-12-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多