2017-03-02 53 views
0

我目前正在Firebase中構建一個應用程序,我想要獲得所有用戶的停車位,但問題是我的代碼沒有從firebase中檢索每個用戶的停車位子項,它沒有得到任何數據。獲取所有用戶在Firebase中的同一個孩子android

這是我的代碼:

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

這是樹:

database

+0

有什麼疑問或問題? –

+0

問題是,這段代碼並沒有從firebase中檢索每個用戶的停車位子碼 – Rihab

回答

0
db.child("Users").child("Parking Spaces").orderByChild("adress").equalTo("park1") 

此代碼將retreive與價值= 「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); 
     } 
    } 
+0

它不工作:/ – Rihab

相關問題