【问题标题】:Android Firebase realtime database filter parents [duplicate]Android Firebase实时数据库过滤器父母[重复]
【发布时间】:2018-07-21 09:31:24
【问题描述】:
我正在使用 Firebase 制作一个基本的体育统计 Android 应用程序,但我不确定在阅读时如何过滤数据库库。我的数据库结构如下,我将如何过滤搜索以便我只得到包含team1:redsox 和team2:yankees 孩子的父母,而忽略game3?
数据库图片:
【问题讨论】:
标签:
android
database
firebase
firebase-realtime-database
【解决方案1】:
假设 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 中的 team1 是 redsox(单个单词)。为了使equals() 方法起作用,两个属性应该保持相同的值,red sox 或redsox。