我的问题是在下一段代码中, 在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();
}
}
});
答案 0 :(得分:2)
你所做的就是创建一个新的ValueEventListener。在将其添加到Reference以进行侦听之前,这不会得到任何回调。
也许你打算写这行来设置它?
databaseReference.addValueEventListener(valueEventListener);