Firebase database delete item array

0

I can not delete the items I have in an array with the following code, trying two ways but nothing happened to the image of the bbdd and the code.

Maybe it's doing it with onDataChange ???

public void deleteEvent(View view) {


    databaseReference = FirebaseDatabase.getInstance().getReference("Users").child( uiD ).child( "events" ).child( code );
    databaseReference.removeValue();
    users.getevents().remove( 1 );


}

Code for the entry in the array

public boolean checkAdd(String codigo ){

    for ( String item : users.getevents()){
        if(codigo.equals(item)){
            return false;
        }

    }
    return true;

}

 if(checkAdd(codigo)){
     users.getevents().add(codigo);
 }

and then you get it from firebase

mDatabase = FirebaseDatabase.getInstance (). getReference (). child ("Events") .child (code);

    mDatabase.addValueEventListener( new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {

            Event event = dataSnapshot.getValue( Event.class );
            mTitle.setText( event.getTitle() );
            mDescription.setText( event.getDescription() );
            dataEvent=event.getDateEvent();
            code=event.getCode();
            url=event.getFoto();
            mCode.setText(event.getCode());
            ano=event.getAno();
            mes=event.getMes();
            dia=event.getDia();
            countDate();//diferencia fechas
            url();//foto evento
        }


        @Override
        public void onCancelled(final DatabaseError databaseError) {
        }
    } );

    
asked by lujan 16.06.2018 в 17:52
source

1 answer

0

At the end I found the code:

public void deleteEvent(View view) {

        eventos = new ArrayList<>();

        databaseReference = FirebaseDatabase.getInstance().getReference("Users").child( uiD );
        databaseReference.addListenerForSingleValueEvent( new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {

                User listas =dataSnapshot.getValue(User.class);
                eventos=listas.getevents();

                for( int i=0; i<listas.getevents().size();i++){
                    if(eventos.get( i ).equals( code )){
                        eventos.remove( i );
                        users.getevents().remove( i );

                        databaseReference.setValue( users );
                    }
                    if (eventos.contains( code )){
                        eventos.remove( code );
                    }

                }

            }

            @Override
            public void onCancelled(DatabaseError databaseError) {

            }
        } );

    }
    
answered by 30.06.2018 / 16:17
source