2016-06-26 26 views
1

DB構造にaddChildEventListenerから生じ得ることができない最初に私は私のコードでは、データベースの参照を作成しました。私のプログラムは</p> <pre><code>questions questionId options optionId label score ... </code></pre> <p>Firebase

mQuestionDatabaseReference = FirebaseDatabase.getInstance().getReference("questions").child(questionId).child("options").child(optionId); 

次に、オプションの中で、トランザクションを使用してスコアの値を変更しました。

mQuestionDatabaseReference.child("score").runTransaction(new Transaction.Handler() { ... 

スコア値を正常に更新できます。今度はスコアがすでにデータベースで更新されているかどうかを知りたいので、addChildEventListenerを使用してUIを更新できます。

mQuestionDatabaseReference.addChildEventListener(new ChildEventListener() {.. 

これは問題ありません。さて、私はオプションのスコアの子供が更新されているかどうかを知りたいだけです。だから私はした

mQuestionDatabaseReference.child("score").addChildEventListener(new ChildEventListener() {.. 

この新しい子イベントリスナーは、オプションを正常に更新すると、結果を得ることができません。

+0

'/ optionId/score'の中にはどのような種類のデータがありますか? – adolfosrs

+0

int型のデータ(数値) – devadnqpnd

答えて

2

/optionId/scoreに追加していますが、スコアには実際に子がないため、コールバックは決して実行されません

この場合、ValueEventListenerを使用する必要があります。

mQuestionDatabaseReference.child("score").addValueEventListener(
    new ValueEventListener() { 
     @Override 
     public void onDataChange(DataSnapshot dataSnapshot) { 
      //dataSnapshot.getValue ... 
     } 
}); 

firebase events documentationでさらに情報を入手してください。

+0

私はもっとメソッド名を読み込む必要があると思います。ありがとうございました! – devadnqpnd

+0

@devadnqpnd hsuahsua。これはいつも起こります。 :)よく聞かれる質問のおめでとう! – adolfosrs

関連する問題