Ich muss das Firebase-Schema durchlaufen, um Daten für jede workouts
& Anzeige in einem RecyclerView zu erhalten. Jetzt kann ich nicht das Schema in der Firebase mit dem Listener & über POJO Klasse Program
genannt.Wie durchläuft man eine Firebase-Struktur in Android?
JSON Von Firebase
{
"subscriptions" : {
"[email protected],com" : {
"-KDnhRwHjssOejrqyenP" : {
"category" : "Strength",
"goal" : "This workout can be done while on the phone!",
"length" : 1,
"title" : "Hello Workouts",
"weeks" : {
"week1" : [ "High Knees", "Jumping Jacks", "Wall sit", "Pushups", "Sit-ups", "Step ups", "Squats", "Tricep dips on chair", "Plank", "High Knees running in place", "Lunges", "Pushup and rotation", "Side plank (alternate per round)", "Alternating Push-Up Plank", "Chest Expander", "Diamond Push-ups", "Dive Bomber Push-ups", "Butt Kickers", "Lying Triceps Lifts", "One Arm Side Push-up", "Overhead Arm Clap", "Overhead Press", "Power Circles", "Push-up and Rotation", "T Push-ups", "Reverse Plank", "Spiderman Push-up", "T Raise", "Tricep Dips", "Wall Push-ups", "Wide Arm Push-ups", "Burpees" ]
}
},
"-KDni3TN4NMyGXePyp92" : {
"category" : "Strength",
"goal" : "This workout can be done by a BABUJI",
"length" : 1,
"title" : "Indian Workouts",
"weeks" : {
"week1" : [ "Diamond Pushups", "Jackknives", "Plyo Lunges", "Plyo Squats", "Single leg plank (alternate per round)", "Plyo Lunges", "Pushup and rotation", "Weighted side plank (alternate per round)", "Alternating Push-Up Plank", "Chest Expander", "Diamond Push-ups", "Dive Bomber Push-ups", "One Arm Side Push-up", "Overhead Press", "Push-up and Rotation", "T Push-ups", "Spiderman Push-up", "Wide Arm Push-ups", "Burpee Pushups" ]
}
}
},
"[email protected],com" : {
"-KDnfjROKeFAL9wccsxY" : {
"category" : "Mobility",
"goal" : "afternoon body weight workout",
"length" : 1,
"title" : "Afternoon HiiT",
"weeks" : {
"week1" : [ "High Knees", "Squats", "Lunges", "Diamond Push-ups", "Lying Triceps Lifts" ]
}
},
"-KDps90Dn6XtJc6Co00b" : {
"category" : "Strength",
"goal" : "goal",
"length" : 1,
"title" : "title",
"weeks" : {
"week1" : [ "Diamond Pushups", "Jackknives", "Plyo Lunges", "Plyo Squats", "Single leg plank (alternate per round)", "Plyo Lunges", "Pushup and rotation", "Weighted side plank (alternate per round)", "Alternating Push-Up Plank", "Chest Expander", "Diamond Push-ups", "Dive Bomber Push-ups", "One Arm Side Push-up", "Overhead Press", "Push-up and Rotation", "T Push-ups", "Spiderman Push-up", "Wide Arm Push-ups", "Burpee Pushups" ]
}
}
}
}
}
Listener CODE
public void FB(){
ref.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
for (DataSnapshot postSnapshot: snapshot.getChildren()) {
System.out.println(postSnapshot.getValue());
//Program post = proSnapshot.getValue(Program.class);
}
}
@Override
public void onCancelled(FirebaseError firebaseError) {
System.out.println("The read failed: " + firebaseError.getMessage());
}
});
}
Logcat
03-28 08: 52: 53,966 23.584-23.584/com. android.sam Ich/System .out: {-KDni3TN4NMyGXePyp92 = {weeks = {week1 = [Diamond Liegestütze, Jackknives, Plyo Lunges, Plyo Kniebeugen, Einbeinsteg (abwechselnd pro Runde), Plyo Lunges, Pushup und Rotation, Belastete Seitenplanke (abwechselnd pro Runde), Abwechselnd Push-Up Plank, Brust Expander, Diamond Push-ups, Tauchbomber Liegestütze, Einarmige Seite Push-up, Overhead Presse, Push-up und Rotation, T Liegestütze, Spiderman Push-up, Wide Arm Push- Ups, Burpee Pushups]}, title = Indian Workouts, Kategorie = Stärke, Länge = 1, Ziel = Dieses Workout kann von einem BABUJI durchgeführt werden}, -KDnhRwHjssOejrqyenP = {weeks = {week1 = [Hohe Knie, Springende Buben, Wall sit , Liegestütze, Sit-ups, Step-Ups, Kniebeugen, Trizeps Dips auf Stuhl, Plank, hohe Knie laufen an Ort und Stelle, Lunges, Pushup und Rotation, Side Plank (abwechselnd pro Runde), Alternierende Push-Up Plank, Expander, Diamond Push -ups, Tauchbomber Liegestütze, Butt Kickers, Liegende Trizepslifte, Einarmige Seiten Liegestütze, Overhead Arm Clap, Overhead Press, Power Circles, Liegestütz und Rotation, T Liegestütze, Reverse Plank, Spiderman Push-up, T Heben, Trizeps Dips, Wand Push-ups, Breitarm Push-ups, Burpees]}, title = Hallo Workouts, Kategorie = Stärke, Länge = 1, Ziel = Dieses Workout kann während des Telefonierens durchgeführt werden! }}
03-28 08: 52: 53,967 23.584-23.584/com.android.sam I/System.out: {-KDnfjROKeFAL9wccsxY = {Wochen = {week1 = [Hoch Knees, Squats, Lunges, Diamant Push- ups, Liegende Trizepslifte]}, title = Nachmittag HiiT, Kategorie = Mobilität, Länge = 1, Ziel = nachmittags Körpergewicht Workout}, -KDps90Dn6XtJc6Co00b = {Wochen = {Woche1 = [Diamond Pushups, Jackknives, Plyo Lunges, Plyo Squats, Einbeinige Planke (abwechselnd pro Runde), Plyo Lunges, Pushup und Rotation, Belastete Seitenplanke (abwechselnd pro Runde), Alternierende Push-Up Planke, Expander, Diamond Push-Ups, Tauchbomber Push-ups, One Arm Side Push- oben, Overhead-Presse, Push-up und Rotation, T-Push-ups, Spiderman Push-up-, Wide-Arm-Push-ups, Burpee-Liegestütze]}, title = Titel, Kategorie = St rength, Länge = 1, Ziel = Ziel}}
Program.java
public class Program {
private String title;
private String goal;
private String category;
private int length;
HashMap<String, ArrayList<String>> weeks;
/**
* Required public constructor
*/
public Program() {
}
public Program(String title, String goal, String category, int length, HashMap<String, ArrayList<String>> weeks) {
this.title = title;
this.goal = goal;
this.category = category;
this.length = length;
this.weeks = weeks;
}
public String getTitle() {
return title;
}
public String getGoal() {
return goal;
}
public String getCategory() {
return category;
}
public int getLength() {
return length;
}
public HashMap<String, ArrayList<String>> getweeks() {
return weeks;
}
}
Was ist das Problem? Haben Sie schon versucht, eine Karte zu erstellen? –
Ich habe eine POJO-Klasse namens Program, um das Mapping durchzuführen. Aber ich kann die Daten nicht innerhalb der Push ID durchsuchen und abrufen? – user3467240
Ich vermute, es wird ein Fall von 'DataSnapshot.forEach()', aber es ist immer noch sehr unklar. Welcher Knoten im JSON erstellt eine 'Program'-Klasse? Wie sieht die 'Program' Klasse aus (füge an, was du bereits dafür hast)? –