Firebase:将随机数据从Firebase中提取到RecyclerView(android) [英] Firebase: Pull random data from Firebase to RecyclerView (android)

查看:146
本文介绍了Firebase:将随机数据从Firebase中提取到RecyclerView(android)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我做了一个查询,从数据库里面只抽取了6个数据,但是这个时候我只能orderByChild,limitToFirst或者lastTo。一切工作正常,但... ...

我想每次刷新活动时把随机itens里面的Recyclerview。

如何将随机数据放入RecyclerView? Firebase没有特殊的随机查询。有没有其他方法可以做到这一点?



以下是我的代码:

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

@Override
保护无效populateViewHolder(最终CategoryViewHolder viewHolder,类别模型,int位置){


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


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

@Override
public void onClick(View v){


});


}


};


mImagesList.setAdapter(firebaseRecyclerAdapter);

$ b $ / code $ / pre
$ b $ p我的适配器

  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);


$ b $ / code $ / pre

解决方案

我建议你也在你的Model类中添加另一个变量。有点像身份证。你随机存储 Long 值。 (例如从0到15)。
然后创建一个方法,它将生成一个随机值(可以说方法的名字是 generateRandom())。这样,当你想获得随机数据时,你可以使用你的查询:

$ p $ query = mDatabase.orderByChild ID)startAt(generateRandom())limitToFirst(6)。。


I made a query to pull only 6 itens from database inside a RecyclerView, but at this time I can only orderByChild, limitToFirst or last. Everything is working fine but...

I'd like to put Random itens inside the Recyclerview every time I refresh the activity.

How can I put random data inside RecyclerView? Firebase does not have a special Random query. Is there any other way to do it?

Here is my code:

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);

}

My adapter:

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);

    }
}

解决方案

I suggest you also add another variable to your Model class. Something like an "id". And you store random Long values in it. (From 0 to 15 for example). And then create a method that will generate a random value (lets say the method's name is generateRandom()). This way, when you want to get the random data, you can use your query like this:

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

这篇关于Firebase:将随机数据从Firebase中提取到RecyclerView(android)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆