使用Firebase和React Native删除密钥中的多个子项

使用Firebase和React Native删除密钥中的多个子项,firebase,react-native,firebase-realtime-database,Firebase,React Native,Firebase Realtime Database,下面的代码在仅删除一个子项时可以正常工作,但是在我的示例6中,我需要删除多个子项。见附件截图。如何将所有6个子项添加到remove函数中 deleteActivity= () => { const { currentUser } = firebase.auth(); firebase .database() .ref(`/users/${currentUser.uid}/data/${this.state.dateForFirebase}`)

下面的代码在仅删除一个子项时可以正常工作,但是在我的示例6中,我需要删除多个子项。见附件截图。如何将所有6个子项添加到remove函数中

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

来自:

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

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


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

您好,您可以通过原子更新传递一个对象,该对象的要删除的键设置为空

试试这个,让我知道它是否有效

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)

  }