Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.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,我想从数据库中的子“UserRequests”中删除所有内容,但将其保留为特定的子“DoNotRemove”: 我真的需要这样做,否则其他选项将是从不是“DoNotRemove”的“UserRequests”中只获取一个孩子,做我必须做的事情,然后删除它,或者从“UserRequests”中只获取一个孩子的“昵称”(因为“DoNotRemove”没有孩子),做我必须做的事情,然后删除它 基本上,我必须删除“UserRequests”中除child“DoNotRemove”之外的所有内容,或者从

我想从数据库中的子“UserRequests”中删除所有内容,但将其保留为特定的子“DoNotRemove”:

我真的需要这样做,否则其他选项将是从不是“DoNotRemove”的“UserRequests”中只获取一个孩子,做我必须做的事情,然后删除它,或者从“UserRequests”中只获取一个孩子的“昵称”(因为“DoNotRemove”没有孩子),做我必须做的事情,然后删除它


基本上,我必须删除“UserRequests”中除child“DoNotRemove”之外的所有内容,或者从“UserRequests”中仅获取一个子项,而不是“DoNotRemove”。

类似的操作应该可以:

DatabaseReference ref = FirebaseDatabase.getInstance().getReference("UserRequests");
Query query = ref.orderByChild("Nickname").startAt(" "); // space it the first printable character

query.addChildEventListener(new ChildEventListener() {
    @Override
    public void onChildAdded(DataSnapshot dataSnapshot, String previousChildName) {
        dataSnapshot.getRef().removeValue();
    }
    ...

因此,这将获得
UserRequests
下具有属性
昵称的每个子节点。由于空格是第一个可打印的字符,因此将返回每个具有此类属性的节点。它会跳过您的
DoNotRemove
节点,该节点没有
昵称
属性。

我明白了,这太完美了!非常感谢。
DatabaseReference ref = FirebaseDatabase.getInstance().getReference("UserRequests");
Query query = ref.orderByChild("Nickname").startAt(" "); // space it the first printable character

query.addChildEventListener(new ChildEventListener() {
    @Override
    public void onChildAdded(DataSnapshot dataSnapshot, String previousChildName) {
        dataSnapshot.getRef().removeValue();
    }
    ...