Ich fange an, Android Apps mit der Datenbankverbindung zu codieren. Als IDE verwende ich Android Studio und Firebase für die Datenbank. Das ist meine Datenstruktur in Firebase: Get Firebase Daten von bestimmten Kind
In meiner App muss ich einen ListView
mit allen Namen ausfüllen. Ich möchte also die Daten von drei Kindern vom Kind "Rezepte" vom UUID-Kind. Ich hoffe, das ist verständlich.
Ich habe viel gegoogelt und ich kann einfach nicht herausfinden, wie das funktioniert. Meine aktuelle Version des Java-Code ist dies:
final FirebaseUser user = firebaseAuth.getCurrentUser();
// trying to get the reference of the right path
DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child(user.getUid()).child("Rezepte");
ref.addListenerForSingleValueEvent(
new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
// calling a method which should read the data from the snapshot and put it into the ListView
fillList((Map<String, Object>) dataSnapshot.child(user.getUid()).child("Rezepte").getValue());
}
@Override
public void onCancelled(DatabaseError databaseError) {
Toast.makeText(RezepteActivity.this, "Daten konnten nicht gelesen werden", Toast.LENGTH_SHORT).show();
}
});
}
private void fillList(Map<String, Object> entries) {
// loop to cycle through every child of "Rezepte" and get the names
for (Map.Entry<String, Object> entry : entries.entrySet()) {
Map singleEntry = (Map) entry.getValue();
// add the name to an ArrayList of all names
Rezepte.add((String) singleEntry.get("name"));
}
// put the data into the ListView
lvRezepte.addFooterView(lvRezepte, Rezepte, true);
}
Die App immer abstürzt und ich verstehe nicht wirklich viel im Debugger. Aber der Fehler tritt bereits in der onDataChange
void auf.
Ich wäre wirklich glücklich, wenn mir jemand helfen könnte.