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

[Firebase] addSnapshotListener๋Š” ํ˜ธ์ถœ๋ ๋•Œ ๋ชจ๋“  ๋ฌธ์„œ๋ฅผ ์ฝ์„๊นŒ?

by Fomagran ๐Ÿ’ป 2021. 7. 13.
728x90
๋ฐ˜์‘ํ˜•

 

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

 

์š”์ƒˆ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๊ณ  ์žˆ์–ด์„œ ๋ธ”๋กœ๊ทธ ํฌ์ŠคํŒ…์„ ๊ณ„์† ๋ฏธ๋ค˜๋„ค์š”..

 

์˜ค๋Š˜์€ Firestore์—์„œ ๋ฐ์ดํ„ฐ์˜ ๋ณ€๊ฒฝ์„ ๊ฐ์ง€ํ•  ์ˆ˜ ์žˆ๋Š” addSnapshotListener์„ ์‚ฌ์šฉํ•  ๋•Œ 

 

snapshot์˜ documents์˜ ๊ฐฏ์ˆ˜๋ฅผ ์„ธ์–ด๋ณด๋ฉด ์ „์ฒด ๊ฐฏ์ˆ˜๊ฐ€ ๋‚˜์˜ค๋”๋ผ๊ตฌ์š”.

 

๊ทธ๋ž˜์„œ ๋ฌธ๋“ "๋ฌธ์„œ๊ฐ€ ํ•˜๋‚˜๋งŒ ๋ณ€๊ฒฝ๋ผ๋„ ์ปฌ๋ ‰์…˜์˜ ๋ชจ๋“  ๋ฌธ์„œ๋ฅผ ์ฝ๋Š” ๊ฑด๊ฐ€?"

 

๋ผ๋Š” ์˜๋ฌธ์ด ๋“ค์–ด์„œ ์‹คํ—˜ํ•ด๋ณธ ๊ฒฐ๊ณผ๋ฅผ ์ •๋ฆฌํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

 

๋ฐ”๋กœ ์‹œ์ž‘ํ• ๊ฒŒ์š”~


Firestore

 

ํŒŒ์ด์–ด๋ฒ ์ด์Šค ๊ณต์‹ ๋ฌธ์„œ์—๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ์ถ”๊ฐ€,์ˆ˜์ •,์‚ญ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ๋•Œ๋งˆ๋‹ค ์ฝ๋Š” ํšŸ์ˆ˜๊ฐ€ ์ฆ๊ฐ€ํ•œ๋‹ค๊ณ  ๋‚˜์™ธ์žˆ์Šต๋‹ˆ๋‹ค.

 

(์ €๋Š”.. ์ด๊ฑธ ๋ด๋„ ์ „์ฒด ๋ฌธ์„œ๋ฅผ ์ฝ๋Š”๊ฑด์ง€ ์•„๋‹ˆ๋ฉด ๋ณ€๊ฒฝ๋œ ๊ฒƒ๋งŒ ์ฝ๋Š”๊ฑด์ง€ ์ •ํ™•ํžˆ ์•Œ ์ˆ˜๊ฐ€ ์—†๋”๋ผ๊ตฌ์š”.)

 

 

๋ฐ์ดํ„ฐ๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด Test๋ผ๋Š” ์ปฌ๋ ‰์…˜์— number ํ•„๋“œ๋กœ 0๋ถ€ํ„ฐ 99๊นŒ์ง€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋ฌธ์„œ๊ฐ€ 100๊ฐœ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

 

Test ์ปฌ๋ ‰์…˜์—์„œ ์–ด๋–ค ๋ณ€๊ฒฝ์„ ๊ฐ์ง€ํ•˜๋Š” ๊ฒƒ์ด addSnapshotListener ๋ฉ”์†Œ๋“œ์ธ๋ฐ์š”.

 

์•„๋ž˜์™€ ๊ฐ™์ด ์ปฌ๋ ‰์…˜์— ๊ฒฝ๋กœ์— ๋ฉ”์†Œ๋“œ๋ฅผ ๋‹ฌ์•„์„œ ๋ฐ์ดํ„ฐ๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์„๋•Œ,์ˆ˜์ •๋˜์—ˆ์„๋•Œ,์‚ญ์ œ๋˜์—ˆ์„๋•Œ ๋“ฑ์„ ๊ด€์ฐฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 Firestore.firestore().collection("Test").addSnapshotListener { snapshot, error in
            guard let snapshot = snapshot else { return }
            print(snapshot.documents.count)
            snapshot.documentChanges.forEach { change in
                switch change.type {
                case .added:
                    print("added")
                case .modified:
                    print("modified")
                case .removed:
                    print("removed")
                }
            }
        }

 

์œ„ 100๊ฐœ์˜ ๋ฐ์ดํ„ฐ ์ค‘ ํ•˜๋‚˜์˜ ์ˆซ์ž๋ฅผ ๋ณ€๊ฒฝํ•˜์—ฌ ์ถœ๋ ฅ์„ ํ™•์ธํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

ํŒŒ์ด์–ด๋ฒ ์ด์Šค ์ฝ˜์†”์—์„œ ์ˆซ์ž 8์„ 1000์œผ๋กœ ๋ฐ”๊พธ๋ฉด 

 

 

์•„๋ž˜์™€ ๊ฐ™์ด ๋ฐ์ดํ„ฐ๊ฐ€ ์ˆ˜์ •๋œ ๊ฒƒ์„ ๊ฐ์ง€ํ•˜์—ฌ modified๋ผ๊ณ  ์ž˜ ์ถœ๋ ฅ๋ผ์„œ ๋‚˜์˜ต๋‹ˆ๋‹ค.

 

 

์ด์ œ ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ์„œ ๋ฌธ์„œ๋ฅผ ํ•˜๋‚˜์”ฉ ์ถ”๊ฐ€ํ•ด์ฃผ๋Š” ์ž‘์—…์„ ์ง„ํ–‰ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

๋จผ์ € ์œ„ ์ˆซ์ž๋Š” 101,102... ์ˆซ์ž๋Š” addSnapshotListener๋ฅผ ๋‹ฌ์•„๋†“์€ Test ์ปฌ๋ ‰์…˜์˜ ๋ฌธ์„œ์˜ ๊ฐฏ์ˆ˜์ž…๋‹ˆ๋‹ค.

 

 

์ด๋ ‡๊ฒŒ ์ง„ํ–‰ํ•œ ๋’ค ํŒŒ์ด์–ด์Šคํ† ์–ด์˜ ์‚ฌ์šฉ๋Ÿ‰์„ ๋ณด๋ฉด

 

๋ณ€๊ฒฝํ–ˆ์„ ๋•Œ ๋ฐ์ดํ„ฐ ์‚ฌ์šฉ๋Ÿ‰์„ ๋ณด๋ฉด ๋‘ ๋ฒˆ์— ๊ฑธ์ณ์„œ ์ฝ๊ธฐ์™€ ์“ฐ๊ธฐ๊ฐ€ ์ด 10๋ฒˆ์”ฉ ๋ฐœ์ƒํ•œ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

 

 

์ฆ‰, addSnapshotListener๋ฅผ ๋‹ฌ์•„๋†“์œผ๋ฉด ์ปฌ๋ ‰์…˜์˜ ๋ชจ๋“  ๋ฌธ์„œ๋ฅผ ์ฝ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋ณ€๊ฒฝ๋œ ๋ฌธ์„œ ํ•˜๋‚˜๋งŒ ์ฝ๋Š”๋‹ค.


์˜ค๋Š˜์€ ์ด๋ ‡๊ฒŒ addSnapshotListener์ด ํ˜ธ์ถœ๋  ๋•Œ ์ฝ๋Š” ํšŸ์ˆ˜๋ฅผ ์‹คํ—˜ํ•ด๋ณด๊ณ  

 

๊ทธ ๊ฒฐ๊ณผ๋ฅผ ์ •๋ฆฌํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค.

 

ํ˜น์‹œ๋ผ๋„ ๊ถ๊ธˆํ•˜์‹œ๊ฑฐ๋‚˜ ํ‹€๋ฆฐ ๋ถ€๋ถ„์ด ์žˆ๋‹ค๋ฉด ์–ธ์ œ๋“  ๋Œ“๊ธ€๋กœ ์•Œ๋ ค์ฃผ์„ธ์š”~

 

728x90
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€