从火力地堡数据库中删除特定值
我想从以下火力地堡数据库中删除特定的值是我所存储从火力地堡数据库中删除特定值
现在的数据库,我想删除以下值
fname: "John"
lname: "wick"
Here, What i have try to delete specific value from Firebase..
DatabaseReference demo = mReference.child("demo").orderByValue().equalTo("John").getRef();
demo.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
dataSnapshot.getRef().removeValue();
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
但是,这将删除数据库中的所有值...
Question
:如何删除特定值???我必须做的
任何帮助将不胜感激。
而不是使用addListenerForSingleValueEvent
尝试如下使用addChildEventListener
的,
Query queryRef = mReference.child("demo").orderByChild("fname").equalTo("John");
queryRef.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot snapshot, String previousChild) {
snapshot.getRef().setValue(null);
}
});
,您可以尝试:
mReference.child("demo").orderByChild("fname").equalTo("John").addListenerForSingleValueEvent(
new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
dataSnapshot.getRef().setValue(null);
}
@Override
public void onCancelled(DatabaseError databaseError) {
Log.w("TodoApp", "getUser:onCancelled", databaseError.toException());
}
});
已经试试这个,不工作...'dataSnapshot.getRef()removeValue();'和'dataSnapshot.getRef()的setValue(NULL);'都是同样的事情..阅读火力DOC .. https://firebase.google.com/docs/database/android/save-data#delete_data –
您是否尝试:'mReference.child(“demo”)。orderByChild(“fname”)。equalTo(“John” )' –
是的......没有工作 –
喜尝试使用此代码,
mReference.child("demo").orderByChild("fname").equalTo("John").addListenerForSingleValueEvent(
new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
mReference.child("demo").child(dataSnapshot.getKey()).setValue(null);
}
@Override
public void onCancelled(DatabaseError databaseError) {
Log.w("TodoApp", "getUser:onCancelled", databaseError.toException());
}
});
非常感谢您的回复我在回答中找到了一些答案。看我的解决方案。 –
好感谢所有,修改后有很多答案和查询..这是我的工作。
mReference.child("demo").orderByChild("fname").equalTo("John").addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
mReference.child("demo").child(dataSnapshot.getKey()).setValue(null);
//also work
//dataSnapshot.getRef().setValue(null);
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {
}
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
感谢您的回应,, ..但没有发生! –
@UttamPanchasara请检查我的答案,我现在更新! –
谢谢......你的解决方案像魅力一样也检查我的答案,这也是我的工作。 –