我正在尝试获取我的数据库的一个根节点列表
我的数据库设置如下
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
为数据库中的每个用户。
感谢任何见解
答案 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.