【问题标题】:How can I retrieve all users from firebase database without getting current user?如何在不获取当前用户的情况下从 firebase 数据库中检索所有用户?
【发布时间】:2017-11-19 06:40:29
【问题描述】:

我正在使用 Recycler 视图从 firebase 中检索所有用户,如下所示

@Override
    public void onViewCreated(final View view, @Nullable Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);

        databaseReference = FirebaseDatabase.getInstance().getReference().child("users");

        firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<AllUsers, AllUsersViewHolder>
                (AllUsers.class, R.layout.all_users_display_layout, AllUsersViewHolder.class, databaseReference) {
            @Override
            protected void populateViewHolder(AllUsersViewHolder viewHolder, AllUsers model, final int position) {
                viewHolder.setName(model.getName());

                viewHolder.view.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {

                        String visit_user_id = getRef(position).getKey();

                        Intent intent = new Intent(getActivity(), UserProfilesActivity.class);
                        intent.putExtra("visit_user_id", visit_user_id);
                        startActivity(intent);
                    }
                });
            }
        };
        all_user_list.setAdapter(firebaseRecyclerAdapter);
    }

    public static class AllUsersViewHolder extends RecyclerView.ViewHolder {

        View view;

        public AllUsersViewHolder(View itemView) {
            super(itemView);
            view = itemView;
        }

        public void setName(String name) {
            TextView all_user_name = (TextView) view.findViewById(R.id.all_user_name);
            all_user_name.setText(name);
        }
    }

我如何在没有当前用户的情况下检索用户,因为我正在使用 此列表添加好友场景

我的数据库结构如下

users
    key
      name:xxxx
    key
      name:yyyy

请帮助我对这些东西不熟悉

【问题讨论】:

  • 您可以在这里发布您的数据库规则吗?
  • 我用上面的代码检索数据很好我不想在@Wilk列表中登录用户

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


【解决方案1】:

这是一个列表:

databaseReference.orderByChild("id").equalTo(null).addChildEventListener(new ChildEventListener() {
                    @Override
                    public void onChildAdded(DataSnapshot dataSnapshot, String s) {        

                   String name=dataSnapshot.child("name").getValue().toString();

                    }

                    @Override
                    public void onChildChanged(DataSnapshot dataSnapshot, String s) {

                    }

                    @Override
                    public void onChildRemoved(DataSnapshot dataSnapshot) {

                    }

                    @Override
                    public void onChildMoved(DataSnapshot dataSnapshot, String s) {

                    }

                    @Override
                    public void onCancelled(DatabaseError databaseError) {

                    }
                });

ChildEventListener 用于列表,它将遍历节点users 内的names

所以你可以这样做:

users
key
  name:xxxx
  id:true
key
  name:yyyy

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2019-05-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-02
  • 1970-01-01
  • 2017-10-15
相关资源
最近更新 更多