Android Firebase回收器适配器未显示数据

Android Firebase回收器适配器未显示数据,android,firebase,firebase-realtime-database,android-recyclerview,firebaseui,Android,Firebase,Firebase Realtime Database,Android Recyclerview,Firebaseui,我习惯于使用firebase recycler adapter使用populateViewHolder,但作为onBindViewHolder是一种新的方法。我尝试了onBindViewHolder,但它没有显示任何内容。 我做错了什么 这是我的密码 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.

我习惯于使用firebase recycler adapter使用
populateViewHolder
,但作为
onBindViewHolder
是一种新的方法。我尝试了
onBindViewHolder
,但它没有显示任何内容。 我做错了什么

这是我的密码

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_users);

mDatabase = FirebaseDatabase.getInstance().getReference().child("Users");
    mUsersList = (RecyclerView) findViewById(R.id.usersList);
    mUsersList.setHasFixedSize(true);
    mUsersList.setLayoutManager(new LinearLayoutManager(this));}


 @Override
protected void onStart() {
    super.onStart();
 FirebaseRecyclerOptions<Users> options =
          new FirebaseRecyclerOptions.Builder<Users>()
                  .setQuery(mDatabase, Users.class)
                  .build();

  FirebaseRecyclerAdapter<Users, UsersViewHolder> adapter = new FirebaseRecyclerAdapter<Users, UsersViewHolder>(options) {

      @Override
      public UsersViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {

          View view = LayoutInflater.from(parent.getContext())
                  .inflate(R.layout.users_single_layout, parent, false);
          return new UsersViewHolder(view);
      }

      @Override
      protected void onBindViewHolder(@NonNull UsersViewHolder holder, int position, @NonNull Users model) {
            holder.setName(model.getName());
      }

  };
  mUsersList.setAdapter(adapter);

}

public static class UsersViewHolder extends RecyclerView.ViewHolder {

   View mView;
    public UsersViewHolder(View itemView) {
        super(itemView);
        mView = itemView;
    }

    public void setName(String name){

        TextView userNames = (TextView) mView.findViewById(R.id.textView2);
        userNames.setText(name);
    }
}}
我的自定义布局

 <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent" android:layout_height="match_parent">


    <de.hdodenhof.circleimageview.CircleImageView
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:src="@drawable/common_google_signin_btn_icon_dark_focused"
        android:id="@+id/circleImageView2" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="89dp"
        android:layout_marginStart="89dp"
        android:layout_toEndOf="@+id/circleImageView2"
        android:layout_toRightOf="@+id/circleImageView2"
        android:text="TextView" />

    <TextView
        android:id="@+id/textView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/circleImageView2"
        android:layout_alignLeft="@+id/textView2"
        android:layout_alignStart="@+id/textView2"
        android:text="TextView" />
</RelativeLayout>


我可以在firebase中查看您的表用户吗?将onCreateViewHolderonBindViewHolder日志添加到日志中,查看它们是否调用。

确保在firebase项目中设置读取规则。将read设置为true

您可以添加:

 adapter.startListening();
之后:

mUsersList.setAdapter(adapter);
它应该是这样的:

mUsersList.setAdapter(adapter);

adapter.startListening();

欢迎来到
StackOverflow
,请提供@CodeNemesis late reply的可能副本,但您尝试过上面的链接吗?我看到了下面的图片,您需要使用
implementation'com.firebaseui:firebaseui数据库:3.2.1'
,然后
onBindViewHolder
将起作用,并且您还需要使用此功能,我尝试了日志记录,但没有调用它们。这里是我的用户在firebase@CodeNemesis这也发生在我身上,有解决方案吗?@ArmandoBarreda我在没有任何解决方案的情况下被困了3天,所以我做了一些我不感到自豪的事情,我降级了所有依赖项以匹配我的一个工作项目,然后升级了除firebase ui数据库之外的所有依赖项。这启用了populateViewHolder覆盖选项,我完成了它。@CodeNemesis你能给我发送项目吗?@ArmandoBarreda很抱歉,这不可能,但你可以看到我的依赖项。更改依赖项后唯一改变的是使用populateViewHOlder而不是onCreate和onBinder,因此您可以参考上面的代码。
mUsersList.setAdapter(adapter);

adapter.startListening();