javascript - Firebase -- 批量删除子节点

标签 javascript reactjs firebase firebase-realtime-database

我正在使用 reactFire、Firebase 和 reactJS 构建一个简单的待办事项应用程序。我遇到的问题是当我尝试批量删除列表中已完成的条目时。

componentWillMount: function() {
        this.ref = Firebase.database().ref("items/");
        this.bindAsArray(this.ref, "items");
        this.ref.on('value', this.handleDataLoaded);
}

for (var i in this.state.items) {
            var key = items[i]['.key'];
            if(items[i].done){
                this.ref.child(key).remove();
            }
}

循环提前结束,即在删除所有已完成的条目之前,因为调用了渲染函数。

最佳答案

您可以使用多位置更新一次性删除所有已完成的项目:

var updates = {};
for (var i in this.state.items) {
    var key = items[i]['.key'];
    if(items[i].done){
        updates[key] = null; // setting value to null deletes the key
    }
}
this.ref.update(updates);

关于javascript - Firebase -- 批量删除子节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38084531/

相关文章:

javascript - ReactTransitionGroup 钩子(Hook)中的回调是什么?

javascript - 如何将 Django 服务器变量传递到 React jsx 中?

javascript - firebase 是否自动记录元数据,例如 'created_at'

javascript - 比较两个数组中的键和值

javascript - 当 Redux 中的 mapToDispatchToProps() 参数时,'dispatch' 不是一个函数

javascript - Javascript/jQuery 范围 slider 是否可访问?

firebase - 是否可以同时使用2个或更多onwrite firebase云功能?

javascript - Onchange 选择在 jquery 中每行的下一列输入字段上设置的项目值

javascript - Formik 组件更改要控制的文本类型的不受控输入

javascript - Firestore 事务在 Cloud Functions 中找不到数据