Ich bin neu in firebase
und nosql
DatenbankWie bestimmte Liste von Daten aus Feuerbasis
Ich versuche abzurufen einige spezifische Daten von einem Firebase abzurufen. Ich habe einen Knoten universities
und dieser Knoten hat viele eindeutige Bezeichner als Knoten, der so mehr Daten enthält. Ich möchte name
von jedem Knoten abrufen.
Bitte sehen Sie sich das an.
Was ich versucht habe, so weit: Ich habe versucht addChildEventListener
verwenden, aber das hört nur das erste Kind. Ich habe es debuggt und es zeigte nur die Werte des ersten Kindes von universities
Knoten.
myRef.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
List<University> university = new ArrayList<>();
Map<String, Object> td = (HashMap<String, Object>) dataSnapshot.getValue();
Log.d("TAG",dataSnapshot.getValue().toString());
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {
}
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
Ich habe auch versucht addValueEventListener
. Das hört den gesamten Knoten ab und gibt ganze Daten zurück, aber ich kann "Name" für es nicht extrahieren, da es eindeutige Bezeichner enthält.
Bitte führen Sie mich in die richtigen Richtungen.
myRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
University university = dataSnapshot.getValue(University.class);
List<University> universities = (List<University>) dataSnapshot.getValue(University.class);
*//*List<String> lst = new ArrayList<String>();
for(DataSnapshot dsp : dataSnapshot.getChildren()){
lst.add(dsp.getKey());
}
Log.d("TAG",lst.toString());*//*
Map<String, Object> td = (HashMap<String, Object>) dataSnapshot.getValue();
*//*List<Object> values = new ArrayList<Object>(td.values());
List<String> list=new ArrayList<String>();
for(int i=0; i<values.size(); i++){
list.add((String) values.get(i));
}*//*
Log.d("TAG", university.toString());
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
ok ich habe die erste Methode benutzt. Diese Methode. Speichern Sie die HashMap-Daten in die Liste. Ich meine, es hat jetzt insgesamt 3 Index. Und jeder Index enthält HashMap Art von Daten. Und ich möchte einen Namen daraus machen. Wie würde ich es tun? –
Ich sehe die Art der Verwendung mit in Ihrem Beitrag ist anders. in meinem Code (in einer Methode), innerhalb der for-Schleife erhalten Sie das Univerty-Objekt, und verwenden Sie können Name Eigenschaft von universal.name –
Dank Sie es geholfen –