我正在使用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
复制相似问题