计算变量的数量,等于firebase中的值

时间:2017-04-05 02:55:50

标签: android firebase firebase-realtime-database

嘿我正在尝试计算用户正确回答问题的次数。这就是我的数据库存储方式

userid-> questionsid1-> correectlyanswer" 1"

userid-> questionsid2-> correectlyanswer" 0"

userid-> questionsid3-> correectlyanswer" 0"

userid-> questionsid4-> correectlyanswer" 1"

1表示答案正确,0表示不正确。

这是代码。问号的值是正确的,但checkCorrectAnswer字符串中的值始终为空。

databaseReference1.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            int questionsolved = 0;
            for (DataSnapshot userAnswerSnapshot : dataSnapshot.getChildren()) {

                String questionCodeKey = userAnswerSnapshot.getKey();
                String checkCorrectAnswer = userAnswerSnapshot.child(questionCodeKey).child("checkAnswerCorrect").getValue(String.class);    
                if (checkCorrectAnswer.equals("1")) {
                    questionsolved = questionsolved + 1;
                }

            }
            questionSolvedTextview.setText(questionsolved + "");
        };

        @Override
        public void onCancelled(DatabaseError databaseError) {
        }
});

1 个答案:

答案 0 :(得分:1)

我认为你错了。

String checkCorrectAnswer = userAnswerSnapshot.child(questionCodeKey).child("checkAnswerCorrect").getValue(String.class);

我认为您不需要为此获取questionCodeKey,因为您已经在遍历DatabaseReference的子级,我相信这是特定用户的路径。如果是这种情况,那么您正在遍历已经存在的问题,这意味着您不必提出问题,因为您已经在其中。有了它,试试这个,让我知道它是否有效:

String checkCorrectAnswer = userAnswerSnapshot.child("checkAnswerCorrect").getValue(String.class);