Android-Firebase:删除所有具有特定id的子项
谁能帮帮我吗?我弄不好 数据库结构如下所示:Android-Firebase:删除所有具有特定id的子项,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,谁能帮帮我吗?我弄不好 数据库结构如下所示: -Abbos 1509917361 ELtRM6aTs9XYkMmdrDZ8gRxpgec2 id: "ELtRM6aTs9XYkMmdrDZ8gRxpgec2" sortorder: -1509917361 FLARM6aTs9XYkMmdrDZ8gRxpgeh4 id: "FLARM6aTs9XYkMmdrDZ8gRxpge
-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) {
}
});
提前感谢使用此-
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());
}
});
我明白了:)
谢谢Arif Khan我用当前用户id替换了id,但此代码删除了Abbos中的所有条目。但我只想删除具有给定id的那些。此块应保留:FLARM6aTs9XYkMmdrDZ8gRxpgeh4 id:“FLARM6aTs9XYkMmdrDZ8gRxpgeh4”排序器:-1509917361
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) {
}
});