Загружайте только х элементов в Firebase Recycler Adapter - PullRequest
0 голосов
/ 25 сентября 2018

Привет, у меня есть один Firebase FirebaseRecyclerAdapter, и в моем проекте Firebase в моей базе данных более 30 значений, и в моем приложении я хочу отображать только первые x элементов.

Я искал в Интернете, ноЯ не нашел, как я могу загрузить только x предметов.

Это мой код:

        mAdapter = new FirebaseRecyclerAdapter<Post, Holder>(
            Post.class,
            R.layout.item_layout,
            Holder.class,
            mRef
    ){

        @Override
        public void onBindViewHolder(Holder viewHolder, int position) {
            Post post = (Post) this.getItem(position);
            ((Holder) viewHolder).bind(post);

        }
        @Override
        public Holder onCreateViewHolder(ViewGroup parent, int viewType) {
            LayoutInflater inflater = LayoutInflater.from(parent.getContext());
            View view;
            view = inflater.inflate(R.layout.item_layout , parent, false);
            return new Holder(view);
        }
 }

Это мой держатель Класс:

public static class EventsOldHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
    public EventsOldHolder(View itemView) {

    }
    public void bind(final Post post) {
    }
    @Override
    public void onClick(View view) {
    }

Я знаюЯ могу скрыть элементы, когда позиция имеет более высокое значение, чем x, но если у меня много элементов и все они скрыты, мое приложение будет работать медленнее, и если вы поможете мне с лучшим решением.

1 Ответ

0 голосов
/ 25 сентября 2018

Чтобы решить эту проблему, вы должны передать конструктору FirebaseRecyclerAdapter query вместо mRef, который, как я предполагаю, является DatabaseReference объектом.

Предполагая, что у вас есть структура базы данныхэто выглядит так:

Firebase-root
    |
    --- posts
          |
          --- postId
                |
                --- title: "Post Title"
                |
                --- //Other details

Чтобы отобразить только первые 5 элементов, запрос должен выглядеть следующим образом:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
Query query = rootRef.child("posts").orderByChild("title").limitToFirst(5);
query.addListenerForSingleValueEvent(/* ... */);
...