Я удаляю дочерний узел, используя .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) {
}
});
}
}
Ожидаемый результат: дочерний узел, который нужно удалить.
Фактический вывод: несколько дочерних узловсоздано.