这是Firebase数据结构。
在这里,我想选择所有值为“ stop”的节点并将其删除。我写了这段代码,但是没有用。
final Map<String, Object> map = new HashMap<String, Object>();
Query numberQuery = reference.child("numbers").orderByChild("stop");
numberQuery.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.exists()){
for (DataSnapshot eachDataSnapShot : dataSnapshot.getChildren()) {
map.put("/numbers/"+eachDataSnapShot.getKey(), null);
}
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
reference.updateChildren(map);
其实,我没有得到如何在Firebase文档中使用查询。如果还有其他方法(不使用查询),请告诉我。
最佳答案
我找到了答案,有一个问题我正在使用orderByChild()
,但是我不得不在那使用orderByValue()
。所以我只是将orderByChild("stop")
更改为orderByValue().equalTo("stop")
并且它起作用了。
Query numberQuery = reference.child("numbers").orderByValue().equalTo("stop");
numberQuery.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.exists()){
for (DataSnapshot eachDataSnapShot : dataSnapshot.getChildren()) {
map.put("/numbers/"+eachDataSnapShot.getKey(), null);
}
reference.updateChildren(map);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
关于android - orderByChild()在Firebase数据库中不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44931813/