2017-03-02 23 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") 

このコードは= "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

関連する問題