Android 在firebase中,如果没有特定的子对象,如何从子对象中删除所有内容?
我想从数据库中的子“UserRequests”中删除所有内容,但将其保留为特定的子“DoNotRemove”: 我真的需要这样做,否则其他选项将是从不是“DoNotRemove”的“UserRequests”中只获取一个孩子,做我必须做的事情,然后删除它,或者从“UserRequests”中只获取一个孩子的“昵称”(因为“DoNotRemove”没有孩子),做我必须做的事情,然后删除它Android 在firebase中,如果没有特定的子对象,如何从子对象中删除所有内容?,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,我想从数据库中的子“UserRequests”中删除所有内容,但将其保留为特定的子“DoNotRemove”: 我真的需要这样做,否则其他选项将是从不是“DoNotRemove”的“UserRequests”中只获取一个孩子,做我必须做的事情,然后删除它,或者从“UserRequests”中只获取一个孩子的“昵称”(因为“DoNotRemove”没有孩子),做我必须做的事情,然后删除它 基本上,我必须删除“UserRequests”中除child“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();
}
...