1

我做了一个查询,以从RecyclerView中的数据库中只提取6个itens,但此时我只能orderByChild,limitToFirst或last。一切工作正常,但...Firebase:将Firebase中的随机数据提取到RecyclerView(android)

我想把随机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); 

    } 
} 
+0

没有运营商从您的Firebase数据库中获取随机数据。你看过以前的问题吗? http://stackoverflow.com/search?q=%5Bfirebase%5D+random+data –

+0

你还有什么你的模型类?除了图片网址? –

+0

是的,我做到了。但我找不到解决方案。 @frankvanPuffelen –

回答

2

我建议你也另一个变量添加到您的模型类。有点像“id”。并且您随机存储Long值。 (例如从0到15)。 然后创建一个方法,它会生成一个随机值(可以说方法的名字是generateRandom())。这样,当您想获得随机数据时,可以使用如下查询:

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

非常感谢你!它正在工作! –

相关问题