2017-03-02 4 views
0

Ich baue gerade eine App in Firebase und ich möchte alle Benutzer Parkplätze bekommen, aber das Problem ist, dass mein Code nicht Parkplätze Kind jedes Benutzers von Firebase abrufen, es erhält keine Daten.Erhalte alle Benutzer gleichen Kind in Firebase android

Dies ist mein Code:

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

Dies ist der Baum:

database

+0

Was ist die Frage oder ein Problem? –

+0

das Problem ist, dass dieser Code nicht Parkplätze Kind jedes Benutzers von Firebase – Rihab

Antwort

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

Dieser Code wird jeder Stellplatz mit value = "park1" retreive. Während Ihre parkingSpace-Werte Objekte mit inneren Attributen sind. Ich glaube nicht, dass Firebase Möglichkeiten bietet, sie direkt zu filtern, indem sie nach ihrem Attribut filtern.

Sie haben die Antwort in Ihrer Anwendung filtern:

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

abgerufen es funktioniert nicht: / – Rihab

Verwandte Themen