我想从数据库中的子“ UserRequests”中删除所有内容,但保留其特定的子“ DoNotRemove”:
databaseReference.child("UserRequests").removeValue();
我确实需要执行此操作,否则其他选择将是从“ UserRequests”中仅获取一个不是“ DoNotRemove”的孩子,执行我必须要做的,然后将其删除,或者从“ UserRequests”中仅获取一个孩子UserRequests”的子级为“昵称”(因为“ DoNotRemove”没有子级),请执行我必须做的事,然后将其删除。
http://oi65.tinypic.com/15xspxe.jpg
基本上,我必须从“ UserRequests”中删除所有子项,但子项“ DoNotRemove”除外,或者仅从“ UserRequests”中获取一个子项,而不是“ DoNotRemove”。
答案 0 :(得分:0)
类似的事情应该起作用:
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
下具有属性Nickname
的每个子节点。由于空格是第一个可打印字符,因此这将返回具有此属性的每个节点。它会跳过没有DoNotRemove
属性的Nickname
节点。