在Firebase android中获取所有用户的同一子级
我目前正在Firebase中构建一个应用程序,我想获取所有用户的停车位,但问题是我的代码没有从Firebase检索每个用户的停车位子项,它没有获取任何数据 这是我的代码:在Firebase android中获取所有用户的同一子级,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,我目前正在Firebase中构建一个应用程序,我想获取所有用户的停车位,但问题是我的代码没有从Firebase检索每个用户的停车位子项,它没有获取任何数据 这是我的代码: public ArrayList<ParkingSpace> retrieve() { db.child("Users").child("Parking Spaces").orderByChild("adress").equalTo("park1").addChildEventListener(new Ch
public ArrayList<ParkingSpace> retrieve() {
db.child("Users").child("Parking Spaces").orderByChild("adress").equalTo("park1").addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
fetchData(dataSnapshot);
}
...
};
}
private void fetchData(DataSnapshot dataSnapshot) {
ParkingSpace space = dataSnapshot.getValue(ParkingSpace.class);
space.setId(dataSnapshot.getKey());
parkingsSpaces.add(space);
}
publicArrayList检索(){
db.child(“用户”).child(“停车位”).orderByChild(“地址”).equalTo(“公园1”).addChildEventListener(新的ChildEventListener)(){
@凌驾
公共void onChildAdded(DataSnapshot DataSnapshot,字符串s){
获取数据(dataSnapshot);
}
...
};
}
私有void fetchData(DataSnapshot DataSnapshot){
ParkingSpace space=dataSnapshot.getValue(ParkingSpace.class);
setId(dataSnapshot.getKey());
停车空间。添加(空间);
}
这是一棵树:
此代码将使用value=“park1”检索每个停车位。
而你的parkingSpace值是具有内部属性的对象。我不认为Firebase提供了通过属性过滤直接检索它们的方法
您必须过滤应用程序中的响应:
public ArrayList<ParkingSpace> retrieve() {
db.child("Users").child("Parking Spaces").orderByChild("adress").addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
fetchData(dataSnapshot);
}
...
};
}
private void fetchData(DataSnapshot dataSnapshot) {
ParkingSpace space = dataSnapshot.getValue(ParkingSpace.class);
if ( "park1".equals(space.getAdress)) {
space.setId(dataSnapshot.getKey());
parkingsSpaces.add(space);
}
}
publicArrayList检索(){
db.child(“用户”).child(“停车位”).orderByChild(“地址”).addChildEventListener(新的ChildEventListener)(){
@凌驾
公共void onChildAdded(DataSnapshot DataSnapshot,字符串s){
获取数据(dataSnapshot);
}
...
};
}
私有void fetchData(DataSnapshot DataSnapshot){
ParkingSpace space=dataSnapshot.getValue(ParkingSpace.class);
if(“park1.”等于(space.getAddress)){
setId(dataSnapshot.getKey());
停车空间。添加(空间);
}
}
问题是什么?问题是此代码无法从firebase检索每个用户的停车位子项
public ArrayList<ParkingSpace> retrieve() {
db.child("Users").child("Parking Spaces").orderByChild("adress").addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
fetchData(dataSnapshot);
}
...
};
}
private void fetchData(DataSnapshot dataSnapshot) {
ParkingSpace space = dataSnapshot.getValue(ParkingSpace.class);
if ( "park1".equals(space.getAdress)) {
space.setId(dataSnapshot.getKey());
parkingsSpaces.add(space);
}
}