1

RecyclerView 내 데이터베이스에서 6 itens 만 가져 오는 쿼리를 만들었지 만 현재는 ByChild, limitToFirst 또는 last 만 주문할 수 있습니다. 모든 것이 잘 작동하지만 ...Firebase : Firebase에서 임의의 데이터를 RecyclerView로 가져옵니다. (안드로이드)

나는 작업을 새로 고칠 때마다 임의의 itens를 Recyclerview 안에 넣고 싶습니다.

어떻게 RecyclerView에 임의의 데이터를 넣을 수 있습니까? Firebase에는 특별한 무작위 쿼리가 없습니다. 그것을 할 다른 방법이 있습니까? 당신은 또한 당신의 모델 클래스에 또 다른 변수를 추가 제안

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

Model 클래스에서 가지고있는 기타 사항은 무엇입니까? 이미지 URL 이외? –

+0

예, 했어요. 하지만 해결책을 찾지 못했습니다. @frankvanPuffelen –

답변

2

:

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

} 

내 어댑터 :

여기 내 코드입니다. "이드"같은 것. 그리고 무작위 Long 값을 저장합니다. (예를 들어 0에서 15까지). 그리고 무작위 값을 생성 할 메서드를 만듭니다 (메서드의 이름이 generateRandom()이라고 가정 해 봅시다). 이렇게하면 무작위 데이터를 얻으려는 경우 다음과 같은 쿼리를 사용할 수 있습니다.

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

정말 고마워요! 작동 중! –

관련 문제