๋ฆฌ์กํธ ๋ค์ดํฐ๋ธ - CRUD: Delete API (deleteDoc( ) ํ์ฉํ๊ธฐ), CRUD ์ต์ข ์์ฑ
๐ฏ๋ชฉ์ :
CRUD : Delete API ์์ฑ, Firebase : firestore data ์ญ์ ํ๊ธฐ, CRUD ์ต์ข ์์ฑ
1. ์ญ์ ์์ด์ฝ์ ํจ์ ์ถ๊ฐ
<TouchableOpacity/> ํ๊ทธ์ onPress ์์ฑ์ผ๋ก setDelete()ํจ์๋ฅผ ์ถ๊ฐํ๊ณ
ํ๋ผ๋ฏธํฐ๋ก todo์ id๋ฅผ ๋๊ฒจ์คฌ๋ค
2. create Delete API
์์ฃผ ์ฌํํ๋ค ์ง๊ธ๊น์ง ํ๋ ๊ณผ์ ์ ์๊ฐํด๋ณด์,
์๋ฒ ํต์ ์ด ์ด๋ฃจ์ด์ง๊ธฐ ๋๋ฌธ์, ๋น๋๊ธฐ ์ฒ๋ฆฌ๋ฅผ ํ๊ณ
"todos"๋ผ๋ ํด๋์ ์กด์ฌํ๋ todo.id(ํ๋ผ๋ฏธํฐ๋ก ๋ฐ์์จ ๊ฒ)๋ฅผ
deleteDoc ์ ์ฌ์ฉํด์ ์ญ์ ํ๋ฉด ๋๋ค!
3. ๊ฒฐ๊ณผ ํ๋ฉด
์ด๋ก์จ,
CRUD ๋ชจ๋ ๋๋ฌด๋๋ ์ ๊ตฌํ์ด ๋์๋ค!
ํ์ง๋ง UX๋ฅผ ๊ณ ๋ คํ์ ๋
์ค์๋ก ์ญ์ ๋ฒํผ์ด ๋๋ ค์ง๋ค๋ฉด ๋ด ์์คํ todo๊ฐ
์์๊ฐ์ ๋ ์๊ฐ๋ฒ๋ฆฐ๋คใ ใ
๊ทธ๋์ ๋ค์ํ๋ฒ ์ปจํ์ ๋ฐ์ ์ญ์ ํด์ฃผ๋ ์์ ์ ํ์
4-1. Alert confirm
RN ์์๋ confirm API๊ฐ ์๋ค
๊ทธ๋์ Alert ๋ก ๋ง๋ค์ด์ค์ผ ํ๋ค!
์ ์ ์ง์ฐ๋ ๊ฒ์ ์ฃผ์์ฒ๋ฆฌํ๊ณ Alert๊ฐ ์ด๋ป๊ฒ ๋๋์ง ํ์ธํด๋ณด์
๊ทธ๋ผ ์ด๋ ๊ฒ ์๋ฆผ์ฐฝ์ด ์ ๋จ๋ ๊ฒ์ ํ์ธ ํ ์ ์๋ค,
๋ค๋ง ๋ฒํผ์ด 2๊ฐ๋ก ์ทจ์ / ์ญ์ ๊ฐ ๋์ด์ผ ํ๋ค!
4-2. Alert Custom
์์ฒ๋ผ ์คํ์ ํด ๋ณด์๋ค ๋ฒํผ์ด 2๊ฐ๊ฐ ์๊ธฐ๋ ค๋ฉด
๋ฐฐ์ด ์์ ๊ฐ์ฒดํํ๋ก ๋ฃ์ด์ค์ผ ํ๋ค
๊ฐ์ฒด๊ฐ text๋ง ๊ฐ์ง๊ณ ์์ผ๋
๋น์ฐํ๊ฒ๋ ์๋ฌด๋ฐ ์ผ์ด ์ผ์ด๋์ง ์๋๋ค
4-3. Alert Button Custom
- text: ๋ณด์ฌ์ค ๋ด์ฉ(text)
- style:
- cancel == ์ทจ์ ๋ฒํผ(์๋ฌด๊ฒ๋ ์ํจ)
- destructive == ๋นจ๊ฐ ๋ฒํผ(like ๊ฒฝ๊ณ ๋ฉ์ธ์ง)
- onPress: ๋ฒํผ์ด ํด๋ฆญ๋๋ฉด ์คํ (์ฝ๋ฐฑํจ์)
์ด๋ฐ ํํ๋ก custom์ด ์ ๋์๋ค!
์ด์ ์ฐ๋ฆฌ๊ฐ ์ฃผ์์ฒ๋ ํด ๋์๋ deleteDoc์ ๊ฐ์ ธ์์
์ญ์ ๋ฒํผ์ด onPress๊ฐ ๋๋ฉด ์คํ๋ ํจ์๋ก ๋ฃ์ด์ฃผ๋ฉด ๋๋ค!
๋ํ ๋น๋๊ธฐ์ฒ๋ฆฌ๋ ๋ด๋ถ์์ ์ด๋ฃจ์ด์ง๋๋ก async์ await์ ๊ฐ์ ธ์ค์
5. CRUD ์ต์ข ๊ฒฐ๊ณผ ํ๋ฉด
์ด๋ ๊ฒ 'ํฌ๋๋ฆฌ์คํธ ์ฑ'์ CRUD๊ฐ ๋ชจ๋ ์์ฑ๋์๋ค!
์ต์ข ์ ๋ฆฌ
- ์ญ์ ์์ด์ฝ์ด ํ์๋๋ ํ๊ทธ <TouchableOpacity/>์ onPress ๋ก ์คํ ํ ํจ์ ์ถ๊ฐ
- ํด๋น ํจ์์์ deleteDoc() API ํ์ฉํ์ฌ ์ญ์
- ux๋ฅผ ๊ณ ๋ คํ์ ๋ ๋ค์ํ๋ฒ confirm
- Alert ๋ด๋ถ์ ๋ฐฐ์ด ํํ์ ๊ฐ์ฒด๊ฐ ๋ค์ด๊ฐ๋ฉด ๋ฒํผ์์ญ ์ถ๊ฐ!
[ {๋ฒํผ1}, {๋ฒํผ2}, {๋ฒํผ3}...]