Firebase:将随机数据从Firebase提取到RecyclerView(android)

时间:2017-02-04 15:40:30

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

我做了一个查询,在RecyclerView中只从数据库中提取了6个itens,但此时我只能命令为BinChild,limitToFirst或者last。一切都很好但是......

每次刷新活动时,我都想将Random itens放入Recyclerview中。

如何将随机数据放入RecyclerView? Firebase没有特殊的随机查询。还有其他办法吗?

这是我的代码:

mDatabase = FirebaseDatabase.getInstance().getReference().child("Category");
query = mDatabase.limitToFirst(6); 

@Override
        protected void populateViewHolder(final CategoryViewHolder viewHolder, Category model, int position) {


            viewHolder.setImage(getApplicationContext(), model.getImagem());


            viewHolder.mView.setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View v) {


         });


        }


    };


    mImagesList.setAdapter(firebaseRecyclerAdapter);

}

我的适配器:

public static class CategoryViewHolder extends RecyclerView.ViewHolder {

    View mView;

    public CategoryViewHolder(View itemView) {
        super(itemView);

        mView = itemView;
    }

    public void setImage(Context ctx, String image1) {

        ImageView image = (ImageView) mView.findViewById(R.id.photo);
        Picasso.with(ctx).load(image1).into(image);

    }
}

1 个答案:

答案 0 :(得分:2)

我建议你也在Model类中添加另一个变量。像“id”之类的东西。并在其中存储随机Long值。 (例如从0到15)。 然后创建一个生成随机值的方法(假设方法的名称为generateRandom())。这样,当您想要获取随机数据时,您可以使用以下查询:

query = mDatabase.orderByChild("id").startAt(generateRandom()).limitToFirst(6);