我目前正在Firebase中构建一个应用程序,我想让所有用户停车位,但问题是我的代码没有从firebase检索每个用户的停车位子,它没有得到任何数据。< / p>
这是我的代码:
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);
}
这是树:
答案 0 :(得分:0)
db.child("Users").child("Parking Spaces").orderByChild("adress").equalTo("park1")
此代码将使用值=&#34; park1&#34;来检索每个停车位。 而您的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);
}
}