일단 지우고 수정하려면 데이터를 밀어넣어야겠지요 …

데이터 삽입과 수정

// doc(firestore, 경로, pathSegments)
const tweetTextRef = doc(dbService, "tweets", `${tweetObj.id}`);

// 제출 클릭시 동작
cosnt onSubmit = async (e) =>{
    e.preventDefault();
    // updateDoc(참조, 데이터)
    // doc를 업데이트해줌
    await updateDoc(tweetTextRef, {text : newTweet});
    setEditing(false);
}
const onChange = (e) => {
  const {
    target: { value },
  } = e;
  // 수정란이 변화할때마다 input의 value값을 변경해서 저장한다
  setNewTweet(value);
};
  • doc : 지정된 절대경로에서 문서를 참조하는 DocumentReference 인스턴스를 가져옴
  • doc Link

  • updateDoc : 지정된 documentReference가 참조하는 문서의 필드 업데이트. 존재하지 않는 문서에 적용하면 업데이트에 실패한다.
  • updateDoc Link

데이터 제거

// ref(스토리지, Url)
const desertRef = ref(storageService, tweetObj.attachmentUrl);
const tweetTextRef = doc(dbService, "tweets", `${tweetObj.id}`);

const onDeleteClick = async () => {
  // 삭제 안내 띄우기
  const ok = window.confirm("delete?");
  if (ok) {
    try {
      // 문서 삭제
      await deleteDoc(tweetTextRef);
      // 객체가 남아있으면
      if (tweetObj.attachmentUrl !== "") {
        // 그것도 삭제
        await deleteObject(desertRef);
      }
    } catch (error) {
      window.alert("delete error");
    }
  }
};