如何获取根firebase数据库列表

时间:2017-11-28 18:51:56

标签: java android firebase-realtime-database android-recyclerview

我正在尝试获取我的数据库的一个根节点列表

我的数据库设置如下

beans-card
       --user
           --008675
              --...
              --...
              --...
           --007865
              --...
              --...
              --...

依旧...... 我正在尝试获取一个由6位数字组成的用户列表。

我要阅读的代码是

 DatabaseReference list_db = FirebaseDatabase.getInstance().getReference();
        list_db.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                getAllTask(dataSnapshot);
            }

            @Override
            public void onCancelled(DatabaseError databaseError) {

            }
        });

 private void getAllTask (DataSnapshot dataSnapshot) {
    for (DataSnapshot singleSnapshot : dataSnapshot.getChildren()) {
        Users users = singleSnapshot.getValue(Users.class);
        allUsers.add(users);

    }
    recyclerViewAdapter = new RecyclerViewAdapter(this,
            allUsers);
    recyclerView.setAdapter(recyclerViewAdapter);
}

目前获得的错误是

11-28 13:44:38.622 23572-23572/ca.mobile.jenovaprojects.rewardsreader W/ClassMapper: No setter/field for 778018 found on class ca.mobile.jenovaprojects.rewardsreader.main.models.Users

为数据库中的每个用户。

感谢任何见解

1 个答案:

答案 0 :(得分:0)

要将这些用户6位数字ID放入列表中,请使用以下代码:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference userRef = rootRef.child("user");
ValueEventListener eventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        List<String> list = new ArrayList<>();
        for(DataSnapshot ds : dataSnapshot.getChildren()) {
            String userId = ds.getKey();
            list.add(userId);
        }
        Log.d("TAG", list);
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {}
};
userRef.addListenerForSingleValueEvent(eventListener);

现在list包含:008675, 007865 and so on.