Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Firebase android中获取所有用户的同一子级_Android_Firebase_Firebase Realtime Database - Fatal编程技术网

在Firebase android中获取所有用户的同一子级

在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

我目前正在Firebase中构建一个应用程序,我想获取所有用户的停车位,但问题是我的代码没有从Firebase检索每个用户的停车位子项,它没有获取任何数据

这是我的代码:

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);
        }
    }