My database receives the data in the second click and not in the first one as it should

0

What happens is that when I give the first click the data in the Database appears as "0" and "1" should appear, however, when I press the button a second time if the "1" appears in the database ... Help please ...

This is the Android code with Firebase

public class DatosUsuario extends AppCompatActivity {

    Button guardar;

    int size;

    DatabaseReference databaseReference;
    private FirebaseAuth auth;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_datosusuario);

        auth = FirebaseAuth.getInstance();
        databaseReference = FirebaseDatabase.getInstance().getReference();

        guardar=(Button) findViewById(R.id.guardar);

        guardar.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {


                FirebaseDatabase database = FirebaseDatabase.getInstance();
                DatabaseReference fbDb = database.getReference();

                if (fbDb == null) {
                    fbDb = FirebaseDatabase.getInstance().getReference();
                }

                fbDb.child("num")
                        .addListenerForSingleValueEvent(new ValueEventListener() {
                            @Override
                            public void onDataChange(DataSnapshot dataSnapshot) {
                                // get total available quest
                                size = (int) dataSnapshot.getChildrenCount();                                 


                                DatabaseReference mDatabase = FirebaseDatabase.getInstance().getReference().child("num");
                                DatabaseReference currentUserDB = mDatabase.child(auth.getCurrentUser().getUid());

                                String user_id = auth.getCurrentUser().getUid();

                                currentUserDB.child("Número").setValue(size);

                              currentUserDB.child("Uid").setValue(user_id);


                            }
                            @Override
                            public void onCancelled(DatabaseError databaseError) {

                            }
                        });

            }
        });
    }
}
    
asked by Matías Nicolás Núñez Rivas 19.03.2018 в 19:29
source

0 answers