Удалить запись из базы без идентификатора - PullRequest
0 голосов
/ 03 мая 2020

Я вставил данные и отобразил их в виде списка, поскольку я новичок в Firebase. Я не знаю, как их удалить.

Мой формат данных: enter image description here

Код, который я пытался удалить:

        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            member.setName(list.get(position));
        }
    });
   btnDelete.setOnClickListener(new View.OnClickListener() {
       @Override
           public void onClick(View v) {
           final String str = member.getName().substring(0,24);
           if (str == "") {
               Toast.makeText(Retreivedata.this, "plz select record to delete", Toast.LENGTH_LONG).show();
           }else {

           ref.child("Member").child(str).addListenerForSingleValueEvent(new ValueEventListener() {
               @Override
               public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                   ref.child(str).removeValue();
               }

               @Override
               public void onCancelled(@NonNull DatabaseError databaseError) {

               }
           });
           Toast.makeText(Retreivedata.this,"Record is deleted",Toast.LENGTH_LONG).show();
               Intent intent = new Intent(getApplicationContext(),Retreivedata.class);
               startActivity(intent);
           }
           }

Подскажите, что нужно установить, нажав кнопку удаления. !!

1 Ответ

1 голос
/ 03 мая 2020

Я бы предложил использовать firebase recycler adapter или android recycler view для загрузки ваших данных, но для вашего случая это то, что вы можете сделать:

Не лучший способ, но предположим, что вы хотите удалить элемент on click, и предположим, что все names различны:

Я предположил, что member.getName() дает вам имя выбранного элемента:

btnDelete.setOnClickListener(new View.OnClickListener() {
 @Override
 public void onClick(View v) {


//ref
DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child("Member");

//Query
Query query = ref.orderByChild("name").equalTo(member.getName());


ValueEventListener listener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for(DataSnapshot ds : dataSnapshot.getChildren()){

         //remove
         ds.getRef().removeValue();

       }
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {

    }
};
query.addValueEventListener(listener);


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