请是Firebase的新手,并尝试获取如下所示的节点名。我的数据库结构
我在用户节点下有一个节点课程,在该课程节点下有一个不同的课程代码节点。我要实现的是获取所有课程代码及其课程名称,并将其存储在数组列表中,例如,用于存储课程代码的数组列表和另一个用于存储课程名称的数组,下面的代码是我所做的
final ArrayList<String> test=new ArrayList<String>();
myFirebaseRef.child(uid).child("Course").child("CEESE001").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
courses ok=snapshot.getValue(courses.class);
test.add(ok.getCourseName());
}
adapter = new ArrayAdapter<String>(getContext(), android.R.layout.simple_spinner_item, test);
// Here, set the data in ListView
list.setAdapter(adapter);
}
上面的代码是我尝试过的,但是我需要动态获取课程代码,而不是放置静态课程代码,请问如何实现此目的。
试试这个
List<String> coursesNames=new ArrayList<String>();
List<String> coursesCodes=new ArrayList<String>();
DatabaseReference mDatabase= FirebaseDatabase.getInstance().getReference().child("users").child(uid).child("Course");
mDatabase.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot snap:dataSnapshot.getChildren()){
coursesCodes.add(snap.getKey());
coursesNames.add(snap.child("Course Details").child("courseName").getValue(String.class));
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句