2017-06-25 3 views
0

Ich habe dieses Problem beim Versuch, Snapshot von Firebase in die Event-Klasse zu konvertieren. Das Event-Objekt (evento var) wird erstellt, aber seine Attribute sind alle null.Kann DataSnapshot von Firebase nicht in Java kategorisieren

FirebaseDatabase.getInstance().getReference("events") 
       .orderByChild("event_name").equalTo(event_name) 
       .addListenerForSingleValueEvent(new ValueEventListener() { 
        @Override 
        public void onDataChange(DataSnapshot snapshot) { 
         Event evento = snapshot.getValue(Event.class); 
         for (Task task: 
          evento.getTasks()) { 
          Log.d("Task name:",task.getName()); 
         } 


        } 

        @Override 
        public void onCancelled(DatabaseError error) { 
        } 
       }); 

Dies ist die Event-Klasse

public class Event { 
    private String event_name; 
    private List<Task> tasks; 

    public Event(String event_name, LinkedList<Task> tasks) { 
     this.event_name = event_name; 
     this.tasks = tasks; 
    } 

    public Event() { 
    } 

    public String getEvent_name() { 
     return event_name; 
    } 

    public void setEvent_name(String event_name) { 
     this.event_name = event_name; 
    } 

    public List<Task> getTasks() { 
     return tasks; 
    } 

    public void setTasks(List<Task> tasks) { 
     this.tasks = tasks; 
    } 

} 

Und dies ist die Task-Klasse, nur für den Fall

public class Task { 
    private String name; 
    private Boolean state; 
    private String description; 

    public String getName() { 
     return name; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 

    public Boolean getState() { 
     return state; 
    } 

    public void setState(Boolean state) { 
     this.state = state; 
    } 

    public String getDescription() { 
     return description; 
    } 

    public void setDescription(String description) { 
     this.description = description; 
    } 

    public Task(String name, Boolean state, String description) { 
     this.name = name; 
     this.state = state; 
     this.description = description; 
    } 
    public Task(){ 

    } 
} 
+1

Können Sie die Frage aktualisieren, um die Struktur des Knotens 'events' in Ihrer Firebase-Datenbank anzuzeigen? –

+0

danke Pat auch! Ich war im Begriff, die Knotenstruktur hochzuladen, als Frank darauf antwortete und es das Problem löste –

Antwort

1

Ohne die JSON zu wissen (als Pat in einem Kommentar gefragt), es ist unmöglich sicher zu sein. Aber wahrscheinlich konvertieren Sie den Typ an der falschen Stelle.

Wenn Sie eine Abfrage für die Firebase-Datenbank ausführen, werden möglicherweise mehrere Ergebnisse angezeigt. Der Snapshot enthält also eine Liste dieser Ergebnisse. Selbst wenn nur ein Ergebnis vorhanden ist, enthält der Snapshot eine Liste mit einem Ergebnis. Daher muss Ihr Code die Ergebnisse durchlaufen, um jedes passende Ereignis zu erhalten.

+0

Danke Mann! Das war das Problem! es funktioniert jetzt! –

Verwandte Themen