Firebase ValueEventListener

时间:2017-08-01 22:48:20

标签: android firebase firebase-realtime-database

抱歉,我不会说得很好。

我的问题是在下一段代码中, 在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();
            }
        }
    });

1 个答案:

答案 0 :(得分:2)

你所做的就是创建一个新的ValueEventListener。在将其添加到Reference以进行侦听之前,这不会得到任何回调。

也许你打算写这行来设置它?

databaseReference.addValueEventListener(valueEventListener);