почему при удалении одного ребенка создается несколько детей? - PullRequest
0 голосов
/ 27 марта 2019

Я удаляю дочерний узел, используя .removeValue() в Firebase;но вместо этого это создает бесконечное число детей.Как мне это остановить?

 package com.example.eshitha.switchbook;

        import android.content.Intent;

        import android.support.v7.app.AppCompatActivity;
        import android.os.Bundle;
        import android.view.View;
        import android.widget.EditText;
        import android.widget.Toast;


        import com.google.firebase.database.DataSnapshot;
        import com.google.firebase.database.DatabaseError;
        import com.google.firebase.database.DatabaseReference;
        import com.google.firebase.database.FirebaseDatabase;
        import com.google.firebase.database.ValueEventListener;

public class delete extends AppCompatActivity {
    EditText e4,e5;
    DatabaseReference myRef;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.delete);
        e4 = findViewById(R.id.editText14);
        e5 = findViewById(R.id.editText15);
        FirebaseDatabase database = FirebaseDatabase.getInstance("https://switchbook-bbf69.firebaseio.com/");
        myRef= FirebaseDatabase.getInstance().getReference();
    }
    public void onDeletebook(View v){
        myRef.addValueEventListener(new ValueEventListener() {

            String phoneno=e4.getText().toString();
            String bookname=e5.getText().toString();

            DatabaseReference myRef = FirebaseDatabase.getInstance().getReference(phoneno);
            public void onDataChange( DataSnapshot s) {

                for(DataSnapshot postSnapshot : s.getChildren()) {
                    Weather c = postSnapshot.getValue(Weather.class);
                    String ss1;
                    if (c.getPhoneno().equals(phoneno)) {
                        ss1 = c.getPhoneno();
                        if (ss1.equals(phoneno)) {
                           myRef.child("books").child(bookname).removeValue();
                            Intent i = new Intent(delete.this, display.class);
                            startActivity(i);

                        }
                        else {
                            Toast.makeText(getApplicationContext(),"no such book",Toast.LENGTH_LONG).show();
                        }

                    }
                }}

            @Override
            public void onCancelled(DatabaseError firebaseError) {

            }
        });
    }
}

Ожидаемый результат: дочерний узел, который нужно удалить.

Фактический вывод: несколько дочерних узловсоздано.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...