Javascript 如何删除firebase中的值

Javascript 如何删除firebase中的值,javascript,firebase,firebase-realtime-database,Javascript,Firebase,Firebase Realtime Database,只是一个小问题: 现在我有了这个结构 images ---- uniqueId -------- id_logement : 1747657 -------- image : dataimage ---- uniqueId -------- id_logement : 1747657 -------- image : dataimage ---- uniqueId -------- id_logement : 985445234 -------- image : dataimage 而且更好!

只是一个小问题:
现在我有了这个结构

images
---- uniqueId
-------- id_logement : 1747657
-------- image : dataimage
---- uniqueId
-------- id_logement : 1747657
-------- image : dataimage
---- uniqueId
-------- id_logement : 985445234
-------- image : dataimage
而且更好!非常感谢。但是:
如何删除id_logment=1747657的所有图像?
我试过了

        firebase.database().ref('logements/'+key).remove();
        firebase.database().ref('geofire/'+key).remove();
        firebase.database().ref('images').child('id_logement').equalTo(key).remove();
使用key=1747657,但图像没有成功!这个独一无二的东西让我很紧张!你能给我更多的建议吗?非常感谢

请尝试以下代码:-

 rootRef.child("images").addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot snapshot) {
            for(DataSnapshot dataSnapshot :  snapshot.getChildren())
            {
               if(dataSnapshot.child("id_logement").getValue().toString().equals("1747657"))
               {
                   dataSnapshot.getRef().setValue(null);
               }
            }           
        }
        @Override
        public void onCancelled(FirebaseError firebaseError) {
        }
    });

由于要基于查询批量删除数据,因此需要先检索数据并将其删除,然后将其值设置为null,并使用
更新
提交更改

const ref = firebase.database().ref('images');
ref.orderByChild('id_logement').equalTo(key).once('value', snapshot => {
     const updates = {};
     snapshot.forEach(child => updates[child.key] = null);
     ref.update(updates);
});

工作。

实际上有一个更简单的方法

只需在快照中调用属性,并使用
.on('child_added',…)


嘿,巴勃罗,刚刚补充了一个答案。对不起,耽搁了。问候:)那正是我要找的!现在,我可以删除(设置为空)为每一次!非常感谢你!如果我们想删除一个特定的数据节点怎么办?@BhargavSushant ref('node')。remove()?回答得好。但是OP正在寻找一个JavaScript解决方案,由于缺少平台标记,这一点很容易被忽视。很好。尽管这使得代码看起来很小,但我认为这不是性能方面的最佳选择,可能会导致不期望的行为。此代码将为每个被删除的子节点调用
remove
,而使用我提供的解决方案,我们只调用
update
一次。此外,由于这是一个观察者,您将监听任何其他添加的子节点,并将删除刚刚添加的节点。
var ref = firebase.database().ref('images');
ref.orderByChild('id_logement').equalTo(key).on('child_added', (snapshot) => {
     snapshot.ref.remove()
});