2017-08-01 53 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

哦,是的,当然,非常感谢,我不记得这一点。 –

相关问题