2017-08-01 48 views
0

對不起,我的英語說得不太好。Firebase ValueEventListener

我的問題是,在下一個代碼片段中, 在valueEventListener中,沒有輸入,我不知道爲什麼,所以我無法獲得我的實時數據庫的「cantidad」的值。

databaseReference獲取正確,但獲取該行eventValueEventListener = new Value ...時,不會在onDataChange()方法中輸入。

什麼問題?

謝謝。

btnGoToEvent.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      if(auth != null && btnGoToEvent.getText().equals("¡ME APUNTO!")) { 
       btnGoToEvent.setText("Al final no voy a ir"); 
       databaseReference = FirebaseDatabase.getInstance().getReference().child("Eventos").child(String.valueOf(position)); 
       valueEventListener = new ValueEventListener() { 
        @Override 
        public void onDataChange(DataSnapshot dataSnapshot) { 
         cantidad = Integer.parseInt(dataSnapshot.child("cantidad").getValue().toString()); 
         cantidad++; 
         databaseReference.setValue(cantidad); 
         databaseReference.push().setValue(new User(auth.getEmail())); 
        } 

        @Override 
        public void onCancelled(DatabaseError databaseError) { 

        } 
       }; 

      }else if(auth != null && btnGoToEvent.getText().equals("Al final no voy a ir")){ 
       btnGoToEvent.setText("¡ME APUNTO!"); 

      }else{ 
       Toast.makeText(getApplicationContext(), "Necesita estar registrado para apuntarse", Toast.LENGTH_LONG).show(); 
      } 
     } 
    }); 

回答

2

你在那裏做的只是創建一個新的ValueEventListener。直到您將其添加到參考以進行聆聽之前,它不會得到任何回調。

也許你打算寫這行來設置它?

databaseReference.addValueEventListener(valueEventListener); 
+0

哦,是的,當然,非常感謝,我不記得這一點。 –

相關問題