Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 从Firebase中删除单个项目不工作_Android_Firebase_Firebase Realtime Database - Fatal编程技术网

Android 从Firebase中删除单个项目不工作

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

我需要在用户单击退出组按钮后将其从组聊天中删除。上图是我的数据库的样子

假设我想删除用户id为15213的用户

这是我的密码:

 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的用户