代码
private void fetchResults() {
mDatabaseReference.child("Users").child(id).child("Quiz").child("Results").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot resultSnapshot: dataSnapshot.getChildren()) {
Results result = dataSnapshot.getValue(Results.class);
resultsList.add(result);
mAdapter.notifyDataSetChanged();
}
mAdapter.notifyDataSetChanged();
}
@Override
public void onCancelled(DatabaseError databaseError) {
throw databaseError.toException();
}
});
数据库在 RESULTS 之后还有一个子项,那就是用户的用户唯一 ID...显然我不知道哪个用户是哪一个用户,所以我如何跳过该子项来访问其中的信息
数据库结构 - https://ibb.co/mL5KFy
最佳答案
不要在 Result.class 中获取结果,而是将其作为 String 和 User 的映射获取
private void fetchResults() {
mDatabaseReference.child("Users").child(id).child("Quiz").child("Results").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot resultSnapshot: dataSnapshot.getChildren()) {
Map<String, User> map = (Map) dataSnapshot.getValue();
if (map != null) {
for (String id: map.entrySet()) {
User user = map.get(id);
//DO whatever you wan here
}
}
}
mAdapter.notifyDataSetChanged();
}
@Override
public void onCancelled(DatabaseError databaseError) {
throw databaseError.toException();
}
});
关于java - 如何在 android 的 firebase 数据库中跳过子项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50656221/