首页 > 解决方案 > 在android中使用FirebaseUI for firebase recyclerView

问题描述

我是 android 开发的新手,在使用 firebase ui 时遇到了一些问题。我想从我的 firebase 数据库中检索数据并将其显示在我的 recyclerView 上。但我在制作 FirebaseRecyclerAdapter 时经常遇到错误。 这是我的代码示例:

public class UsersActivity extends AppCompatActivity {

private Toolbar userToolbar;
private RecyclerView usersList;

private DatabaseReference mUsersDatabase;

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

    userToolbar = (Toolbar) findViewById(R.id.users_toolbar);
    setSupportActionBar(userToolbar);
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    getSupportActionBar().setTitle("Users");

    mUsersDatabase = FirebaseDatabase.getInstance().getReference().child("Users");

    usersList = (RecyclerView) findViewById(R.id.users_list);
    usersList.setHasFixedSize(true);
    usersList.setLayoutManager(new LinearLayoutManager(this));

}

@Override
protected void onStart() {
    super.onStart();

    FirebaseRecyclerAdapter<Users, UsersViewHolder> firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<Users, UsersViewHolder>(
            Users.class,
            R.layout.single_user_list_layout,
            UsersViewHolder.class,
            mUsersDatabase
    ) {
        @Override
        protected void onBindViewHolder(@NonNull UsersViewHolder holder, int position, @NonNull Users model) {

            holder.setName(model.getName());

        }

        @NonNull
        @Override
        public UsersViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
            return null;
        }
    };

    usersList.setAdapter(firebaseRecyclerAdapter);

}

public static class UsersViewHolder extends RecyclerView.ViewHolder
{
    View mView;

    public UsersViewHolder(@NonNull View itemView) {
        super(itemView);

        mView = itemView;
    }

    public void setName(String name)
    {
        TextView userNameView = (TextView) mView.findViewById(R.id.single_user_name);
        userNameView.setText(name);
    }

}

}

我得到的错误是这样的:

在此处输入图像描述

请帮忙!!

标签: firebasefirebase-realtime-databaseandroid-recyclerviewfirebaseui

解决方案


Sorry wanted to comment but i ain't got enough points to do so. 
Try this first, if it doesnt work try using FirebaseRecyclerOptions 
(The latest   version (3.x) of FirebaseUI implements a different method ofinitializing a FirebaseRecyclerAdapter than previous versions.)    

Make your " firebaseRecyclerAdapter "  variable global, so you would have something like this.


 firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<Users, UsersViewHolder>(
        Users.class,
        R.layout.single_user_list_layout,
        UsersViewHolder.class,
        mUsersDatabase
) 

推荐阅读