0

Firebaseデータ構造にFirebaseUI - FirebaseRecyclerAdapter

{ "questions" : { 
"-KkLGS71meu8aA_wcqTq" : { 
    "q_answer" : "....", 
    "q_category" : "....", 
    "q_qid" : "1", 
    "q_question" : "..." 
}, 
"-KkLGkf8tNb-OKwu2qVa" : { 
    "q_answer" : "...", 
    "q_category" : "...", 
    "q_qid" : "2", 
    "q_question" : "..." 
}, 
"-KkLH1T1ZhFKJaqYFuJ4" : { 
    "q_answer" : "...", 
    "q_category" : "...", 
    "q_qid" : "3", 
    "q_question" : "..." 
} } 

データベースrefrence

questionRef.orderByChild("q_qid") 

を使用してランダムなリストを取得するにはどうすればFirebaseRecyclerAdapterランダムクエリおよび表示を生成しますか? 他の方法がありますか?

編集:

私はこのコード

questionRef.addValueEventListener(new ValueEventListener() { 
       @Override 
       public void onDataChange(DataSnapshot dataSnapshot) { 
        long allNum = dataSnapshot.getChildrenCount(); 
        int maxNum = (int)allNum; 
        int minNum = 1; 
        int randomNum = new Random().nextInt(maxNum - minNum + 1) + minNum; 

        int count = 0; 
        Iterable<DataSnapshot> ds = dataSnapshot.getChildren(); 
        Iterator<DataSnapshot> ids = ds.iterator(); 
        Map<String, Object> question; 

        while(ids.hasNext() && count < randomNum) { 
         question = (Map<String, Object>) ids.next().getValue(); 

         String q = question.get("q_question").toString(); 
         viewHolder.question.setText(q); 

         count ++; // used as positioning. 
        } 
       } 

       @Override 
       public void onCancelled(DatabaseError databaseError) { 

       } 
      }); 

を試してみてくださいしかし、いくつかの質問が複数回表示されますか?そして、あなたがする必要がどのような

答えて

1

、可能な値の数を見つけることです、データベース内numValsと次のコード行にすることを使用します。

int random = new Random().nextInt(numVals); 

あなたのコードのANに使用している場合必要な値を得るために乱数を反復するだけでなく、DataSnapshotを反復する必要があります。

希望します。

関連する問題