React-Navtive

๋ฆฌ์•กํŠธ ๋„ค์ดํ‹ฐ๋ธŒ - CRUD: Delete API (deleteDoc( ) ํ™œ์šฉํ•˜๊ธฐ), CRUD ์ตœ์ข… ์™„์„ฑ

hyo.loui 2023. 1. 3. 16:40

๐ŸŽฏ๋ชฉ์  :

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๊ฐ€ ๋ชจ๋‘ ์™„์„ฑ๋˜์—ˆ๋‹ค!


 

 ์ตœ์ข… ์ •๋ฆฌ 

  1. ์‚ญ์ œ ์•„์ด์ฝ˜์ด ํ‘œ์‹œ๋˜๋Š” ํƒœ๊ทธ <TouchableOpacity/>์— onPress ๋กœ ์‹คํ–‰ ํ•  ํ•จ์ˆ˜ ์ถ”๊ฐ€
  2. ํ•ด๋‹น ํ•จ์ˆ˜์—์„œ deleteDoc() API ํ™œ์šฉํ•˜์—ฌ ์‚ญ์ œ
  3. ux๋ฅผ ๊ณ ๋ คํ–ˆ์„ ๋•Œ ๋‹ค์‹œํ•œ๋ฒˆ confirm
  4. Alert ๋‚ด๋ถ€์— ๋ฐฐ์—ด ํ˜•ํƒœ์˜ ๊ฐ์ฒด๊ฐ€ ๋“ค์–ด๊ฐ€๋ฉด ๋ฒ„ํŠผ์˜์—ญ ์ถ”๊ฐ€!
    [ {๋ฒ„ํŠผ1}, {๋ฒ„ํŠผ2}, {๋ฒ„ํŠผ3}...]