2016-03-19 1 views
1

ich navigieren muß in einer abgeflachten Feuerbasis Struktur navigieren und Daten zu erhalten und eine Recycler Ansicht berechnenWie in einer abgeflachten Struktur Feuerbasis mit FirebaseRecyclerViewAdapter

Dies ist eine Probenstruktur von Feuerbasis

Report.json Struktur ist:

{ 
    "time_stamp_id_report": { 
    "description": "uma descrição aqui", 
    "title": "Um titulo aqui" 
    } 
} 

Und das ist mein Adapter

FirebaseRecyclerAdapter<Report, ViewHolderReport> adapter = new FirebaseRecyclerAdapter<Report, ViewHolderReport>(Report.class, 
    R.layout.layout_report_card_list, ViewHolderReport.class, ref) { 
    @Override 
    protected void populateViewHolder(ViewHolderReport viewHolderReport, Report r, int i) { 
     viewHolderReport.nameReport.setText(r.getTitle()); 
    } 
}; 

Funktioniert gut. Aber jetzt habe ich diese abgeflachte Struktur:

Report.json Struktur

{ 
    "time_stamp_id_report": { 
    "description": "uma descrição aqui", 
    "image": { 
     "image1": true, 
     "image2 ": true 
    }, 
    "title": "Um titulo aqui" 
    } 
} 

Images.json Struktur

{ 
    "image1": { 
    "value": "qiwuhqweouhfqwofe" 
    }, 
    "image2": { 
    "image": "quwerhqiweurqhwieurqhwei" 
    } 
} 

Also, wie kann ich den Bildwert in dem Adapter von Berichten?

Antwort

1

Ihre Änderung Berichts Klasse zu so etwas wie diese in Image-Klasse

public class TimeStampIdReport { 
    private String description; 
    private Image image; 
    private String title; 


    public TimeStampIdReport(){ 
     //must have empty contruct to bind the data 
    } 

    public String getDescription() { 
     return description; 
    } 

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

    public Image getImage() { 
     return image; 
    } 

    public void setImage(Image image) { 
     this.image = image; 
    } 

    public String getTitle() { 
     return title; 
    } 

    public void setTitle(String title) { 
     this.title = title; 
    } 

} 

hinzufügen oder aus der Seite der TimeStampIdReport Klasse wie diese

public class Image { 

    private Boolean image1; 
    private Boolean image2; 

    public Boolean getImage1() { 
     return image1; 
    } 

    public void setImage1(Boolean image1) { 
     this.image1 = image1; 
    } 

    public Boolean getImage2() { 
     return image2; 
    } 

    public void setImage2(Boolean image2) { 
     this.image2 = image2; 
    } 

} 

Basierend auf getImage1() und getImage2() Methoden können Sie Aufblasen Ihre Sicht durch den Aufruf Firebase ref = new Firebase("YOURURL/Images");

Ich hoffe, es gibt Ihnen eine Idee.

+0

Hallo Frank, in meinem Fall habe ich eine Nummer nicht von Imgs definiert. –