我正在使用Firebase制作一个基本的体育统计Android应用程序,但我不确定在阅读时如何过滤数据库基础。我的数据库结构如下,如何过滤搜索结果,只得到包含team1:redsox和team2:yankees子代的父代,而忽略game3?
数据库镜像:

发布于 2018-07-21 19:59:43
假设game1、game2和game3节点是您的Firebase数据库根目录的直接子节点,请使用以下代码来解决此问题:
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
ValueEventListener valueEventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot ds : dataSnapshot.getChildren()) {
String team1 = ds.child("team1").getValue(String.class);
String team2 = ds.child("team2").getValue(String.class);
if(team1.equals("redsox") && team2.equals("yankees")) {
Log.d("TAG", "Foaund only: team1:redsox and team2:yankees");
}
}
}
@Override
public void onCancelled(DatabaseError databaseError) {}
};
rootRef.addListenerForSingleValueEvent(valueEventListener);但请注意,game1中的team1是red sox (两个单词),game2中是redsox (单单词)。为了使equals()方法工作,这两个属性应该具有相同的值,即red sox或redsox。
https://stackoverflow.com/questions/51454706
复制相似问题