【问题标题】:How to get list of root firebase database如何获取根firebase数据库列表
【发布时间】:2017-11-29 16:49:15
【问题描述】:

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

我的数据库是这样设置的

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

对于数据库中的每个用户。

感谢您的任何见解

【问题讨论】:

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


    【解决方案1】:

    要将这些用户的 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.

    【讨论】:

      猜你喜欢
      • 2020-05-04
      • 2020-07-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-08
      • 2017-10-26
      • 1970-01-01
      • 2018-04-17
      相关资源
      最近更新 更多