使用Firebase和React Native删除键中的多个子级

时间:2018-12-05 15:19:17

标签: firebase react-native firebase-realtime-database

下面的代码在仅删除一个孩子的情况下可以正常工作,但是在我的情况下,我需要删除多个孩子。6。请参见所附的屏幕截图。我该如何将所有6个孩子添加到删除功能?

deleteActivity= () => {
    const { currentUser } = firebase.auth();
    firebase
      .database()
      .ref(`/users/${currentUser.uid}/data/${this.state.dateForFirebase}`)
      .remove('ActivityStart1');      
  }

enter image description here

2 个答案:

答案 0 :(得分:1)

您好,您可以通过原子更新将带有要删除的键的对象传递给设置为null的

尝试一下,让我知道它是否有效

deleteActivity= () => {
    const { currentUser } = firebase.auth();
    const ref = firebase.database().ref(`/users/${currentUser.uid}/data/${this.state.dateForFirebase}`)
    var atomicUpdate = {};
    atomicUpdate["ActivityAvgHR1/"] = null;
    atomicUpdate["ActivityCalories/"] = null;
    atomicUpdate["ActivityDurationHrs1/"] = null;
    atomicUpdate["ActivityDurationMns1/"] = null;
    atomicUpdate["ActivityMaxHR1/"] = null;
    atomicUpdate["ActivityStart1/"] = null;

    ref.update(atomicUpdate)

  }

答案 1 :(得分:0)

来自firebase documentation

  

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

     

您还可以通过将null指定为另一次写入的值来删除   set()或update()之类的操作。您可以将这种技术用于   通过一次update()可以在单个API调用中删除多个子级

选中此question并使用空值更新路径。