Удалите Firebase дочерний элемент на основе выбора вращателя в Android - PullRequest
0 голосов
/ 13 февраля 2019

Я новичок в Android Studio, так что это может быть легко для некоторых из вас.

У меня есть счетчик, который читает имена посетителей из базы данных Firebase.

После выбора имении нажата кнопка. Я хочу, чтобы этот дочерний элемент был удален из базы данных.

Это мой код Spinner в onCreate:

databaseVisitors = FirebaseDatabase.getInstance().getReference();
databaseVisitors.child("visitorsToCO").addListenerForSingleValueEvent(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot datasnapshot) {
        final List<String> visitorsToCO = new ArrayList<String>();

        for (DataSnapshot areaSnapshot: datasnapshot.getChildren()) {
            String visitorName = areaSnapshot.child("visitorName").getValue(String.class);
            if (visitorName!=null){
                visitorsToCO.add(visitorName);
            }
        }

        Spinner spinnerV = (Spinner) findViewById(R.id.visitorName);
        ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(CheckOutActivity.this, android.R.layout.simple_spinner_item, visitorsToCO);
        arrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinnerV.setAdapter(arrayAdapter);

    }

А это мой код для кнопки:

btnCheckOut2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            addVisitorCheckOut();
            deleteVisitorToCO();
            openMainActivity();
        }
    });

public void deleteVisitorToCO()
{
    databaseVisitors = FirebaseDatabase.getInstance().getReference("visitorsToCO");

    final String name = visitorName.getSelectedItem().toString();

    Query query = databaseVisitors.child("visitorsToCO").orderByChild("visitorName").equalTo(name);
    query.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            for (DataSnapshot itemSnapshot : dataSnapshot.getChildren()) {
                itemSnapshot.getRef().removeValue();
            }
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });
}

This is my Firebase Database

1 Ответ

0 голосов
/ 13 февраля 2019
databaseVisitors = FirebaseDatabase.getInstance().getReference();
databaseVisitors.child("visitorsToCO").addListenerForSingleValueEvent(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot datasnapshot) {

        for (DataSnapshot areaSnapshot: datasnapshot.getChildren()) {
            if(areaSnapshot.child(visitorName).getValue().toString().equals(spinnerV.getSelectedItem().toString()))
            {
                areaSnapShot.setValue(null);
            }

        }


    }
...