Unter der Annahme, dass der groups
Knoten ein direkter Nachkomme des Firebase Wurzel ist und innerhalb einer einzigen Gruppe gibt es einen Schlüssel groupName
genannt, benutzen Sie bitte den folgenden Code verwenden:
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference groupsRef = rootRef.child("groups");
ValueEventListener eventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot ds : dataSnapshot.getChildren()) {
String name = ds.child("name").getValue(String.class);
Log.d("TAG", name);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {}
};
groupsRef.addListenerForSingleValueEvent(eventListener);
Wenn Sie in der Lage sein müssen nur die Gruppennamen der Gruppen erhalten, die Ihre Benutzer zu verknüpfen sind, müssen Sie zweimal wie folgt abfragen:
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference userGroupsRef = rootRef.child("users").child(userKey).child("groups");
ValueEventListener eventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot ds : dataSnapshot.getChildren()) {
String groupKey = ds.getKey();
DatabaseReference groupKeyRef = rootRef.child("groups").child(groupKey);
ValueEventListener valueEventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String name = dataSnapshot.child("name").getValue(String.class);
Log.d("TAG", name);
}
@Override
public void onCancelled(DatabaseError databaseError) {}
};
groupKeyRef.addListenerForSingleValueEvent(valueEventListener);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {}
};
userGroupsRef.addListenerForSingleValueEvent(eventListener);
In dem userKey
die Schlüssel des Benutzers, von dem aus die die Gruppen-IDs erhalten möchten.
Gibt dies nicht * alle * die Gruppennamen anstelle der Gruppennamen bestimmter Benutzergruppen zurück? –
Das wird mir tatsächlich alle Gruppennamen meiner Gruppen bringen. Aber ich möchte in der Lage sein, nur die Gruppennamen der Gruppen zu erhalten, mit denen mein Benutzer verknüpft ist. – DeGoosseZ
@alexkucksdorf Nein, tut es nicht. Es gibt die Gruppennamen aller meiner Gruppen zurück. –