如何删除firebase中的值

How to remove values in firebase

本文关键字:firebase 删除 何删除      更新时间:2023-09-26

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

images
---- uniqueId
-------- id_logement : 1747657
-------- image : dataimage
---- uniqueId
-------- id_logement : 1747657
-------- image : dataimage
---- uniqueId
-------- id_logement : 985445234
-------- image : dataimage

而且更好!非常感谢。但是:
如何删除id_lgement=1747657的所有图像
我试过

        firebase.database().ref('logements/'+key).remove();
        firebase.database().ref('geofire/'+key).remove();
        firebase.database().ref('images').child('id_logement').equalTo(key).remove();

密钥=1747657,但图像没有成功!这个UniqueId让我很紧张!你能给我更多的建议吗?非常感谢

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

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);
});

正在工作jsFiddle。

实际上有一种更简单的方法。

只需调用快照中的ref属性,然后使用.on('child_added',...)

var ref = firebase.database().ref('images');
ref.orderByChild('id_logement').equalTo(key).on('child_added', (snapshot) => {
     snapshot.ref.remove()
});

试试这个代码:-

 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) {
        }
    });