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

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

相關問題