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