循环遍历整个firebase数据

时间:2017-04-19 05:34:59

标签: java android firebase firebase-realtime-database

我想查找所有用户的数据及其在特定问题上的得分总和,并找到最高排名

现在我可以浏览数据用户数据,但不能通过问题节点。 如何阅读所有数据

这就是我创建POJO的方式:

private String id;
private String name;

private String contact;
private String email;
private String password;
private int score;
private String dob;
private String profession;
private String random;
private String status;
private String fbId;
private UserPuzzleDetails userPuzzleDetails;

public User() {
}

public User(String id, String name, String contact, String email, String password, int score,
            String dob, String profession, String random, String status, String facebookid, UserPuzzleDetails userPuzzleDetails1) {
    this.id = id;
    this.name = name;
    this.contact = contact;
    this.email = email;
    this.password = password;
    this.score = score;
    this.dob = dob;
    this.profession = profession;
    this.random = random;
    this.status = status;
    this.fbId = facebookid;
    this.userPuzzleDetails = userPuzzleDetails1;
}

public User(String id, String name, String contact, String email, String password, int score,
            String dob, String profession, String random, String status, String facebookid) {
    this.id = id;
    this.name = name;
    this.contact = contact;
    this.email = email;
    this.password = password;
    this.score = score;
    this.dob = dob;
    this.profession = profession;
    this.random = random;
    this.status = status;
    this.fbId = facebookid;

}

public User(String name) {
    this.name = name;
}

public String getId() {
    return id;
}

public void setId(String id) {
    this.id = id;
}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public String getEmail() {
    return email;
}


public String getPassword() {
    return password;
}


public int getScore() {
    return score;
}

public void setScore(int score) {
    this.score = score;
}

public String getContact() {
    return contact;
}

public String getDob() {
    return dob;
}


public String getProfession() {
    return profession;
}


public String getRandom() {
    return random;
}


public UserPuzzleDetails getUserPuzzleDetails() {
    return userPuzzleDetails;
}

public void setUserPuzzleDetails(UserPuzzleDetails questions) {
    this.userPuzzleDetails = questions;
}

public String getStatus() {
    return status;
}

public String getFbId() {
    return fbId;
}

public void setFbId(String fbId) {
    this.fbId = fbId;
}

现在我已经使用此函数来检索数据,但它没有记录。 我应该如何通过它迭代这个数据。

    private void getAllRank() {

    final DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference().child("users");
    final Query query = databaseReference.orderByChild("score").limitToLast(10);
    query.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            userlist = new ArrayList<>();
            for (DataSnapshot postSnapshot : dataSnapshot.getChildren()) {
                User score = postSnapshot.getValue(User.class);
                userlist.add(new User(score.getId(), score.getName(), score.getContact(), score.getEmail(),
                        score.getPassword(), score.getScore(), score.getProfession(), score.getDob(), score.getRandom(), score.getStatus(), score.getFbId(),score.getUserPuzzleDetails()));
                Log.e(TAG, "onDataChange: "+userlist );
            }


        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });
}

0 个答案:

没有答案