【问题标题】:Remove multiple children inside a key using Firebase and React Native使用 Firebase 和 React Native 删除密钥中的多个子项
【发布时间】:2018-12-05 15:19:17
【问题描述】:
以下代码仅在删除一个孩子时按预期工作,但是我需要删除多个孩子,在我的案例 6 中。请参阅随附的屏幕截图。我将如何将所有 6 个孩子添加到删除功能?
deleteActivity= () => {
const { currentUser } = firebase.auth();
firebase
.database()
.ref(`/users/${currentUser.uid}/data/${this.state.dateForFirebase}`)
.remove('ActivityStart1');
}
【问题讨论】:
标签:
firebase
react-native
firebase-realtime-database
【解决方案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)
}
【解决方案2】:
来自firebase documentation:
删除数据 删除数据最简单的方法是在对该数据位置的引用上调用 remove()。
您也可以通过将 null 指定为另一个写入的值来删除
操作,例如 set() 或 update()。您可以将此技术与
update() 在单个 API 调用中删除多个子项。
检查此question 并使用空值更新路径。