2017-04-05 46 views
1

嘿,我正在嘗試計算用戶正確回答問題的次數。這是我的數據庫是如何存儲計算變量的數量等於firebase中的值

userid-> questionsid1-> correectlyanswer 「1」

userid-> questionsid2-> correectlyanswer 「0」

userid-> questionsid3-> correectlyanswer 「0」

userid-> questionsid4-> correectlyanswer 「1」

1表示該答案是正確的,0是不正確。

這裏是代碼。 questioncode的值是正確的,但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) { 
     } 
}); 
+0

請編輯您的問題,以顯示準確的JSON(文字,沒有截圖),因爲它是存儲在數據庫中。您可以通過點擊[Firebase數據庫控制檯](https://console.firebase.google.com/project/_/database/data)中的「導出JSON」鏈接來獲取此信息。 –

+0

是的,請執行@FrankvanPuffelen所要求的編輯。你也可以提供給我們你的databaseReference1變量是指什麼? –

+0

你可以發佈json數據來了解你的問題嗎? –

回答

0

我認爲你弄錯了這條線。

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

我覺得你並不需要獲得questionCodeKey這是因爲你已經通過你的DatabaseReference的孩子,我相信是通向一個特定的用戶進行迭代。如果是這樣的話,那麼您已經重複了已經存在的問題,這意味着您不必提問,因爲您已經在其中。就這樣,試試這個,讓我知道,如果它的工作原理:

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

你說得對。謝謝 –

+0

很高興能幫到你! –