updateDoc() 와 deleteDoc() 를 사용한다
import React, { useState } from "react";
import { doc, deleteDoc, updateDoc } from "firebase/firestore";
import { dbService } from "../fbase";
const Nweet = ({ nweetObj, isOwner }) => {
const [editing, setEditing] = useState(false);
const [newNweet, setNewNweet] = useState(nweetObj.text);
const onDeleteClick = async () => {
const ok = window.confirm("Are you sure you want to delete this nweet?");
if (ok) {
await deleteDoc(doc(dbService, "nweets", `${nweetObj.id}`));
}
};
const toggleEditing = () => setEditing((prev) => !prev);
const onSubmit = async (event) => {
event.preventDefault();
const editNweet = doc(dbService, "nweets", `${nweetObj.id}`);
await updateDoc(editNweet, {
text: newNweet,
});
setEditing(false);
};
const onChange = (event) => {
const {
target: { value },
} = event;
setNewNweet(value);
};
return (
<div>
{editing ? (
<>
<form onSubmit={onSubmit}>
<input
type="text"
placeholder="Edit your Nweet"
defaultValue={newNweet}
required
onChange={onChange}
/>
<input type="submit" value="Update Nweet" />
</form>
<button onClick={toggleEditing}>cancel</button>
</>
) : (
<>
<h4>{nweetObj.text}</h4>
{isOwner && (
<>
<button onClick={onDeleteClick}>Delete Nweet</button>
<button onClick={toggleEditing}>Edit Nweet</button>
</>
)}
</>
)}
</div>
);
};
export default Nweet;
${nweetObj.id}
)) 지정할 수 있다.