더북(TheBook)

9.6.3 포스트 삭제 기능 구현하기

usePostActions 함수가 준비됐으면 삭제 기능을 구현해봅시다. Firestore에서 데이터를 삭제하는 것은 매우 간단합니다. posts에서 특정 id를 가진 문서를 삭제하고 싶다면 다음과 같이 코드를 작성하면 됩니다.

firestore()
  .collection('posts')
  .doc(id)
  .delete()

그럼, posts.js 파일을 열어서 id를 파라미터로 포스트를 삭제하는 함수를 작성해봅시다.

lib/posts.js

(...)

export function removePost(id) {
  return postsCollection.doc(id).delete();
}

간단하죠? 이제 이 함수를 usePostActions에서 사용해야 하는데, 위 함수의 id 파라미터가 필요합니다. 현재 우리가 만든 usePostActions Hook에서는 이 id 값을 알 방법이 없으므로 Hook에서 id를 알 수 있도록 PostCard에서 해당 Hook을 사용할 때 파라미터로 넣어주겠습니다. 추가로 포스트를 수정할 때 포스트의 설명 값 또한 필요하므로 해당 값도 파라미터로 넣어주겠습니다. 이 두 가지 값을 하나의 객체로 넣어주세요(또는 두 파라미터로 전달해도 상관 없습니다).

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.