본문 바로가기
개발/Android

안드로이드 파이어베이스(Firebase) 데이터 삭제하는 방법

by 남트로 2023. 4. 22.

오늘은 파이어베이스의 데이터를 삭제하는 방법에 대해서 알아볼 것이다.

 

 

사진을 보며 차근차근 알아가보자

 

삭제하기 전 파이어베이스에 데이터가 두개가 있는 것을 볼 수 있다.



먼저 uidList를 선언해준다.

private List<String> uidList = new ArrayList<>();

그리고 OnDataChange에 uidList.clear()를 추가하여 데이터가 쌓이지 않도록 clear해준다.

그 후 uidKey에 Key값을 받아온 후 uidList.add(uidKey)를 선언해준다.

mDatabase.getReference().child(the_uid).child("PetAccount").addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                petAccountList.clear();
                uidList.clear();
                for(DataSnapshot ds : dataSnapshot.getChildren())         
                {
                    PetAccount petAccount = ds.getValue(PetAccount.class);
                    String uidKey = ds.getKey();

                    petAccountList.add(petAccount);
                    uidList.add(uidKey);
                }
                petdataAdapter.notifyDataSetChanged();
            }

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

            }
        });



그렇다면 이제 본격적으로 삭제버튼 클릭 시 데이터를 삭제하도록 해보겠다.

btn_petprofiledelete.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                mDatabase.getReference().child(the_uid).child("PetAccount").child(uidList.get(position)).removeValue().addOnSuccessListener(new OnSuccessListener<Void>() {
                    @Override
                    public void onSuccess(Void aVoid) {
                        Toast.makeText(PetProfileFix.this, "삭제 성공", Toast.LENGTH_SHORT).show();
                        finish();
                    }
                }).addOnFailureListener(new OnFailureListener() {
                    @Override
                    public void onFailure(@NonNull Exception e) {
                        System.out.println("error: "+e.getMessage());
                        Toast.makeText(PetProfileFix.this, "삭제 실패", Toast.LENGTH_SHORT).show();
                    }
                });
            }
        });

데이터베이스에서 삭제할 데이터가 있는 장소로 접근한뒤 uidList.get(position)으로 삭제할 데이터를 지정해주고 removeValue()를 이용해 삭제를 해주면 끝이다.



버튼을 이용하여 데이터를 삭제했더니 정상적으로 데이터가 삭제된 것을 볼 수 있다.



이처럼 파이어베이스의 uidlist로 position을 받아와서 삭제하고 싶은 데이터를 삭제하는 법을 알아봤다.

댓글