Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.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
Java 要删除firebasedatabase中的特定节点(死区提升)_Java_Android_Firebase_Firebase Realtime Database - Fatal编程技术网

Java 要删除firebasedatabase中的特定节点(死区提升)

Java 要删除firebasedatabase中的特定节点(死区提升),java,android,firebase,firebase-realtime-database,Java,Android,Firebase,Firebase Realtime Database,我想删除name下的deadlift节点 我尝试过以下代码: Query queryRef = mReference.child("uid").child("exercise_name").orderByChild().equalTo("deadlift"); queryRef.addChildEventListener(new ChildEventListener() { @Override public void onChildAdded(DataSnapshot snap

我想删除
name
下的
deadlift
节点

我尝试过以下代码:

Query queryRef = mReference.child("uid").child("exercise_name").orderByChild().equalTo("deadlift");
queryRef.addChildEventListener(new ChildEventListener() {
    @Override
    public void onChildAdded(DataSnapshot snapshot, String previousChild) {
      snapshot.getRef().setValue(null);
    }
});

这不起作用。

因此您无法删除该项,因为您使用了错误的查询。您的查询存在三个主要问题。第一个问题是,您正在以字符串形式传递
“uid”
,而不是来自身份验证过程的实际
uid
。第二个问题是您缺少两个孩子,分别是
BACK
name
。第三个问题是没有向
.orderByChild()
方法传递任何内容。因此,在本例中,正确的查询应该如下所示:

String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();
Query queryRef = mReference
    .child(uid) //The uid of the user
    .child("exercise_name")
    .child("BACK") //Was missing
    .child("name") //Was missing
    .orderByChild("-M2o26QvqcTmytlmact9") //The argument was missing
    .equalTo("deadlift");
虽然上面的查询可以工作,但我建议您使用另一种模式来帮助您更轻松地查询数据库:

Firebase-root
  |
  --- uid
       |
       --- BACK
            |
            --- name
                 |
                 --- deadlift: true
这是相应的查询:

Query queryRef = mReference
    .child(uid)
    .child("exercise_name")
    .child("BACK")
    .child("name")
    .orderByChild("deadlift")
    .equalTo(true);