오늘은 파이어베이스의 데이터를 삭제하는 방법에 대해서 알아볼 것이다.
사진을 보며 차근차근 알아가보자
삭제하기 전 파이어베이스에 데이터가 두개가 있는 것을 볼 수 있다.
먼저 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을 받아와서 삭제하고 싶은 데이터를 삭제하는 법을 알아봤다.
'개발 > Android' 카테고리의 다른 글
안드로이드 Fragment에서 현재 위치(위도, 경도) 가져오는 방법 (0) | 2023.04.23 |
---|---|
안드로이드 CountDownTimer 사용해서 버튼 활성화하는 방법 (0) | 2023.04.23 |
안드로이드 Intent를 이용하여 선택한 Recyclerview 화면으로 포커싱하는 방법 (0) | 2023.04.21 |
안드로이드 파이어베이스 사용자마다 데이터 다르게 관리하는 방법 (0) | 2023.04.20 |
안드로이드 Fragment에서 ListView와 Adpater 사용하기 (0) | 2023.04.19 |
댓글