有人可以帮助我,但我无法让它发挥作用。
数据库结构如下所示:
-Abbos
1509917361
ELtRM6aTs9XYkMmdrDZ8gRxpgec2
id: "ELtRM6aTs9XYkMmdrDZ8gRxpgec2"
sortorder: -1509917361
FLARM6aTs9XYkMmdrDZ8gRxpgeh4
id: "FLARM6aTs9XYkMmdrDZ8gRxpgeh4"
sortorder: -1509917361
1509917780
ELtRM6aTs9XYkMmdrDZ8gRxpgec2
id: "ELtRM6aTs9XYkMmdrDZ8gRxpgec2"
sortorder: -1509917780
现在我要删除所有条目,例如id“ELtRM6aTs9XYkMmdrDZ8gRxpgec2” 但我的代码不起作用。
Query queryRef = mUserAbosDB.child("Abbos").orderByChild("id").equalTo(current_user_id);
queryRef.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
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) {
}
});
提前致谢
答案 0 :(得分:1)
使用此 -
DatabaseReference drTest = FirebaseDatabase.getInstance().getReference();
drTest.child("Abbos").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
for(DataSnapshot dataSnapshot:snapshot.getChildren()) {
if(dataSnapshot.hasChild(id)){
dataSnapshot.getRef().setValue(null);
}
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
Log.w("TAG: ", databaseError.getMessage());
}
});
答案 1 :(得分:0)
我明白了:)
DatabaseReference drTest = FirebaseDatabase.getInstance().getReference();
drTest.child("Abbos").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot areaSnapshot: dataSnapshot.getChildren()) {
areaSnapshot.child(current_user_id).getRef().setValue(null);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
谢谢Arif Khan