๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ“š Database/Firebase

Cloud Firestore ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ฐ์ดํ„ฐ ์—…๋ฐ์ดํŠธํ•˜๊ธฐ (addSnapshotListener)

by Fomagran ๐Ÿ’ป 2020. 9. 12.
728x90
๋ฐ˜์‘ํ˜•

์•ˆ๋…•ํ•˜์„ธ์š” Foma ์ž…๋‹ˆ๋‹ค!

์˜ค๋Š˜์€ ํŒŒ์ด์–ด์Šคํ† ์–ด์—์„œ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ฐ”๋€ ๋ฐ์ดํ„ฐ๋ฅผ ์—…๋ฐ์ดํŠธํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

addSnapshotListener๋ฅผ ๋‹ฌ์•„์ฃผ๋ฉด ๋˜๋Š”๋ฐ์š”. 

 

์ด ๊ธฐ๋Šฅ์€ ์—ฐ๊ฒฐ๋œ ์ฃผ์†Œ์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฐ”๋€”๋•Œ๋งˆ๋‹ค ์ž๋™์œผ๋กœ ์—…๋ฐ์ดํŠธ๋ฅผ ํ•ด์ฃผ๋Š”๋ฐ์š”. 

 

์ด๊ฒƒ์€ ์•„์ฃผ ๋งŽ์ด ์‚ฌ์šฉ๋˜๊ณ  ์œ ์šฉํ•œ ๊ฒƒ์ด๋ผ์„œ ์ด๊ณณ์— ์ ์–ด๋†“๊ฒ ์Šต๋‹ˆ๋‹ค!!

 

์ž ๊ทธ๋Ÿผ ์˜ˆ์‹œ๋กœ ์‹œ์ž‘ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

๋จผ์ € users๋ผ๋Š” ์ฝœ๋ ‰์…˜์— document๋กœ user1์„ ๋งŒ๋“ค์–ด์ฃผ๊ณ  nameํ•„๋“œ๋ฅผ ๋งŒ๋“ค๊ณ  ์›ํ•˜๋Š” ์ด๋ฆ„์„ ์จ์ค๋‹ˆ๋‹ค.

 

xcode๋กœ ๋Œ์•„๊ฐ€์„œ ์Šคํ† ๋ฆฌ๋ณด๋“œ๋กœ ์ด๋™ํ•ด ๋ทฐ์ฝ˜ํŠธ๋กค๋Ÿฌ๋ฅผ ๋งŒ๋“ค์–ด์ฃผ๊ณ  ์ด๋ฆ„์„ ๋‚˜ํƒ€๋‚ผ Label ํ•˜๋‚˜ ๋ฐ”๊ฟ”์ค„ ์ด๋ฆ„์„ ์ ์„ TextField ๊ทธ๋ฆฌ๊ณ  ์ด๋ฆ„์„ ๋ฐ”๊ฟ”์ค„ Button์„ ๋งŒ๋“ค์–ด์ค๋‹ˆ๋‹ค.

 

๋ทฐ์ฝ˜ํŠธ๋กค๋Ÿฌ๋กœ ์ด๋™ํ•˜์—ฌ Label,Button,TexField๋ฅผ IBOutlet์œผ๋กœ ์—ฐ๊ฒฐ์‹œ์ผœ์ค๋‹ˆ๋‹ค. (Button์€ Action๊นŒ์ง€)

 

๊ทธ ๋‹ค์Œ์œผ๋ก  ์•„๊นŒ ๋งŒ๋“ค์–ด์ฃผ์—ˆ๋˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ฃผ์†Œ๋ฅผ ๋งŒ๋“ค์–ด์ค๋‹ˆ๋‹ค.

 

์ด ์ฃผ์†Œ์— addSnapshotListener๋ฅผ ๋‹ฌ์•„์ฃผ๊ณ  ํ•ด๋‹น ๋ฌธ์„œ์˜ nameํ•„๋“œ๊ฐ’์„ ๋ฐ›์•„์™€ Label์˜ ํ…์ŠคํŠธ๋ฅผ ๊ทธ ๊ธ€์ž๋กœ ๋ณ€๊ฒฝํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

์ด ์ƒํƒœ๋กœ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ๋ฅผ ๋Œ๋ ค๋ณด๋ฉด nameLabel์ด ์•„๊นŒ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์จ๋†จ๋˜ Foma๋กœ ๋ณ€๊ฒฝ๋œ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค!

 

change๋ฒ„ํŠผ์˜ ์•ก์…˜์— ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ฃผ์†Œ์˜ nameํ•„๋“œ๊ฐ’์„ ํ…์ŠคํŠธํ•„๋“œ์— ์ž‘์„ฑํ•œ ๊ฐ’์œผ๋กœ ์—…๋ฐ์ดํŠธํ•˜๋„๋ก ํ•ด์ค๋‹ˆ๋‹ค.

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋ชจ๋“  ์„ธํŒ…์ด ์™„๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ์ƒํƒœ๋กœ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ๋ฅผ ๋Œ๋ ค ํ…์ŠคํŠธํ•„๋“œ์•ˆ์— ๊ฐ’์„ ์ž…๋ ฅํ•˜๊ณ  change๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๊ฒŒ ๋˜๋ฉด nameํ•„๋“œ๊ฐ’์ด ์—…๋ฐ์ดํŠธ๋จ๊ณผ ๋™์‹œ์— nameLabel์˜ ๊ธ€์ž๊ฐ€ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ณ€๊ฒฝ๋˜๊ฒŒ๋ฉ๋‹ˆ๋‹ค.

๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜์—ฌ๋„ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์—์„œ ๊ฐ’์ด ๋ฐ”๋€Œ๊ฒŒ ๋˜๊ณ  ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์—์„œ ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜์—ฌ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๊ฐ’์ด ๋ฐ”๋€Œ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

 

์ฐธ์กฐ

 

Cloud Firestore๋กœ ์‹ค์‹œ๊ฐ„ ์—…๋ฐ์ดํŠธ ๊ฐ€์ ธ์˜ค๊ธฐ  |  Firebase

onSnapshot() ๋ฉ”์„œ๋“œ๋กœ ๋ฌธ์„œ๋ฅผ ์ˆ˜์‹  ๋Œ€๊ธฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ์ œ๊ณตํ•˜๋Š” ์ฝœ๋ฐฑ์ด ์ตœ์ดˆ๋กœ ํ˜ธ์ถœ๋  ๋•Œ๋Š” ๋‹จ์ผ ๋ฌธ์„œ์˜ ํ˜„์žฌ ๋‚ด์šฉ์œผ๋กœ ๋ฌธ์„œ ์Šค๋ƒ…์ƒท์ด ์ฆ‰์‹œ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋‚ด์šฉ์ด ๋ณ€๊ฒฝ๋  ๋•Œ๋งˆ๏ฟฝ

firebase.google.com

 

728x90
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€