Android 从Firebase中删除单个项目不工作
我需要在用户单击退出组按钮后将其从组聊天中删除。上图是我的数据库的样子 假设我想删除用户id为15213的用户 这是我的密码:Android 从Firebase中删除单个项目不工作,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,我需要在用户单击退出组按钮后将其从组聊天中删除。上图是我的数据库的样子 假设我想删除用户id为15213的用户 这是我的密码: FirebaseDatabase database = FirebaseDatabase.getInstance(); DatabaseReference groupMemberRef = database.getReference().child("group_users/"+chatGroup.group_id+"/"+userId); groupMe
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference groupMemberRef = database.getReference().child("group_users/"+chatGroup.group_id+"/"+userId);
groupMemberRef.removeValue();
虽然代码在技术上是正确的,但不会从数据库中删除该条目。要解决此问题,请使用以下代码:
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
Query query = rootRef.child("group_users/" + chatGroup.group_id).orderByChild("user_id").equalsTo(15213);
ValueEventListener valueEventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot ds : dataSnapshot.getChildren()) {
ds.getRef().removeValue();
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {}
};
query.addListenerForSingleValueEvent(valueEventListener);
我从未尝试过以您实现的方式删除节点。但我做到了以下几点:
DatabaseReference groupMemberRef = database.getReference().child("group_users/"+chatGroup.group_id+"/"+userId);
groupMemberRef.setValue(null);
看看它是否有效。现在出现了什么错误?在代码中,您忘记了一个孩子。偶数1是一个节点,偶数是一个位数。1在聊天组中被记录。group_id这就是1,后面跟着用户id…没有错误,尽管我刚刚编辑了我的帖子。请重新输入代码。您的代码中有2个错误。缺少的子项和错误的字段键。您需要用户id而不是用户id。它是否适用于此更改?child1添加了用户id而不是用户id?好吧,我想你是糊涂了。。。。。chatGroup.group_id为1,之后,我需要向下删除用户名为15213的用户