728x90 ๋ฐ์ํ Firebase9 [Firebase] ์ปฌ๋ ์ ๊ทธ๋ฃน ์ฌ์ฉํด๋ณด๊ธฐ(Firestore CollectionGroup) ์๋ ํ์ธ์ Foma๐ ์ ๋๋ค! ์ค๋์ Firestore์์ ์ฌ๋ฌ ํ์ ์ปฌ๋ ์ ์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ฌ๋ ์ ์ฉํ ์ปฌ๋ ์ ๊ทธ๋ฃน์ ๋ํด์ ์์๋ณด๊ฒ ์ต๋๋ค. ๋ฐ๋ก ์์ํ ๊ฒ์~ ์ปฌ๋ ์ ๊ทธ๋ฃน์ด๋? ์์ด๋๊ฐ ๊ฐ์ ์ปฌ๋ ์ ์ ๋ชจ์๋์ ์ปฌ๋ ์ ์ ๋๋ค. ์๋ฅผ ๋ค๋ฉด User ์ปฌ๋ ์ ์ด ์๊ณ ํ์ ์ปฌ๋ ์ ์ผ๋ก ์ ์ ๋ค์ ๋ฆฌ๋ทฐ๋ฅผ ๊ด๋ฆฌํ๋ Review์ปฌ๋ ์ ์ด ์๋ค๊ณ ๊ฐ์ ํ ๊ฒ์ User - user1 - Review User - user2 - Review ... ๋ฑ์ผ๋ก ์ ์ ๋ง๋ค ๋ฆฌ๋ทฐ ํ์ ์ปฌ๋ ์ ๊ฐ์ง๊ฒ ๋ ๊ฒ์ ๋๋ค. ๋ง์ฝ์ ๋ชจ๋ ์ ์ ๋ค์ ๋ฆฌ๋ทฐ ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์ค๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผํ ๊น์? ๋ณดํต Firestore์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ฌ๋ ์๋์ ๊ฐ์ด ์ ํํ ๋ฐ์ดํฐ ๊ฒฝ๋ก๋ฅผ ์ ๋ ฅํด์ฃผ์ด์ผ ํฉ๋๋ค. ์ด๋ ๊ฒ ๋๋ฉด ์ ์ ๋ค ์๋งํผ getDocuments ์ฟผ๋ฆฌ๋ฅผ ์คํํด์ผํฉ.. 2021. 7. 15. [Firebase] addSnapshotListener๋ ํธ์ถ๋ ๋ ๋ชจ๋ ๋ฌธ์๋ฅผ ์ฝ์๊น? ์๋ ํ์ธ์ Foma ๐ ์ ๋๋ค! ์์ ํ๋ก์ ํธ๋ฅผ ์งํํ๊ณ ์์ด์ ๋ธ๋ก๊ทธ ํฌ์คํ ์ ๊ณ์ ๋ฏธ๋ค๋ค์.. ์ค๋์ Firestore์์ ๋ฐ์ดํฐ์ ๋ณ๊ฒฝ์ ๊ฐ์งํ ์ ์๋ addSnapshotListener์ ์ฌ์ฉํ ๋ snapshot์ documents์ ๊ฐฏ์๋ฅผ ์ธ์ด๋ณด๋ฉด ์ ์ฒด ๊ฐฏ์๊ฐ ๋์ค๋๋ผ๊ตฌ์. ๊ทธ๋์ ๋ฌธ๋ "๋ฌธ์๊ฐ ํ๋๋ง ๋ณ๊ฒฝ๋ผ๋ ์ปฌ๋ ์ ์ ๋ชจ๋ ๋ฌธ์๋ฅผ ์ฝ๋ ๊ฑด๊ฐ?" ๋ผ๋ ์๋ฌธ์ด ๋ค์ด์ ์คํํด๋ณธ ๊ฒฐ๊ณผ๋ฅผ ์ ๋ฆฌํ๋ ค๊ณ ํฉ๋๋ค. ๋ฐ๋ก ์์ํ ๊ฒ์~ Firestore ํ์ด์ด๋ฒ ์ด์ค ๊ณต์ ๋ฌธ์์๋ ์๋์ ๊ฐ์ด ์ถ๊ฐ,์์ ,์ญ์ ๊ฐ ๋ฐ์ํ ๋๋ง๋ค ์ฝ๋ ํ์๊ฐ ์ฆ๊ฐํ๋ค๊ณ ๋์ธ์์ต๋๋ค. (์ ๋.. ์ด๊ฑธ ๋ด๋ ์ ์ฒด ๋ฌธ์๋ฅผ ์ฝ๋๊ฑด์ง ์๋๋ฉด ๋ณ๊ฒฝ๋ ๊ฒ๋ง ์ฝ๋๊ฑด์ง ์ ํํ ์ ์๊ฐ ์๋๋ผ๊ตฌ์.) ๋ฐ์ดํฐ๋ ์๋์ ๊ฐ์ด Test๋ผ๋ ์ปฌ๋ ์ ์ num.. 2021. 7. 13. [Flutter] ํ๋ฌํฐ ์น ๋ฐฐํฌํ๊ธฐ(feat.Fireabse hosting) ์๋ ํ์ธ์ Foma ๐ ์ ๋๋ค! ์ค๋์ ํ์ด์ด๋ฒ ์ด์ค ํธ์คํ ํตํด ํ๋ฌํฐ๋ก ๋ง๋ ์น์ ๋ฐฐํฌํ๋ ๋ฐฉ๋ฒ์ ๋ํด์ ์ ๋ฆฌํ๋ ค๊ณ ํฉ๋๋ค. ๋ฐ๋ก ์์ํ ๊ฒ์~ ํ๋ฌํฐ ํ๋ก์ ํธ ์์ฑ ๋น์ฅฌ์ผ ์คํ๋์ค์์ cmd + shift + p ๋ฅผ ๋๋ฌ์ ์๋ก์ด ํ๋ฌํฐ ํ๋ก์ ํธ๋ฅผ ์์ฑํด์ค๋๋ค. Firebase Hosting ํฐ๋ฏธ๋๋ก ์ด๋ํด์ ์๋์ ๊ฐ์ด ํ์ด์ด๋ฒ ์ด์ค ํด์ ์ค์นํด์ค๋๋ค. sudo npm install -g firebase-tools ํ์ด์ด๋ฒ ์ด์ค ํธ์คํ ์ด๊ธฐ ์ค์ ์ ํด์ค๋๋ค. firebase init hosting 1. Create a new project ์๋ก์ด ํ๋ก์ ํธ๋ฅผ ํ์ด์ด๋ฒ ์ด์ค์ ๋ง๋ค์ด์ค๋๋ค. 2. Google Cloud project id ์ํ๋ ์ด๋ฆ์ผ๋ก ์ ํด์ค๋๋ค. 3. ์ํ๋ ํ๋ก์ ํธ๋ก ์์ด๋๋ก ์ค์ ์๋์.. 2021. 6. 12. [Firebase] Firebase ์ฟผ๋ฆฌ ์์๋ณด๊ธฐ(FireStore Query) ์๋ ํ์ธ์ Foma ๐ ์ ๋๋ค! ์ค๋์ ํ์ด์ด์คํ ์ด์์ ์ํ๋ ์กฐ๊ฑด์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ฌ ์ ์๋ ์ฌ๋ฌ ์ฟผ๋ฆฌ๋ฌธ์ ๋ํด์ ์์๋ณด๊ฒ ์ต๋๋ค! WhereField isEqualTo ํ๋์ ํฌ๋ง๋ผ๋ ๊ฐ๊ณผ ๊ฐ์ ๋ฌธ์๊ฐ ์ ๋ถ ๋ฐํ๋ฉ๋๋ค. db.collection("์ปฌ๋ ์ ์ด๋ฆ").whereField("ํ๋๋ช ", isEqualTo: "ํฌ๋ง") isNotEqualTo ํ๋์ ํฌ๋ง๋ผ๋ ๊ฐ์ด ์๋ ๋ฌธ์๊ฐ ์ ๋ถ ๋ฐํ๋ฉ๋๋ค. db.collection("์ปฌ๋ ์ ์ด๋ฆ").whereField("ํ๋๋ช ", isNotEqualTo: "ํฌ๋ง") isGreaterThan ํ๋๊ฐ์ด 1000๋ณด๋ค ํฐ ๋ฌธ์๊ฐ ์ ๋ถ ๋ฐํ๋ฉ๋๋ค. db.collection("์ปฌ๋ ์ ์ด๋ฆ").whereField("ํ๋๋ช ", isGreaterThan: 1000) isLes.. 2021. 5. 25. [Firebase] Firebase Extensions ์ฌ์ฉํด๋ณด๊ธฐ(feat.์ฌ์ฉ์ ๋ฐ์ดํฐ ์ญ์ ) ์๋ ํ์ธ์ Foma ๐ ์ ๋๋ค! ์ค๋์ ํ์ด์ด๋ฒ ์ด์ค ํ์ฅ ํ๋ก๊ทธ๋จ์ ๋ํด์ ์์๋ณด๊ฒ ์ต๋๋ค. ๋ฐ๋ก ์์ํ ๊ฒ์~ ํ์ด์ด๋ฒ ์ด์ค ์ต์คํ ์ ์ด๋? ๐ค ์ด๋ฏธ ๊ตฌํ๋ ์ฌ๋ฌ ๊ธฐ๋ฅ์ ์ฑ์ ๋น ๋ฅด๊ฒ ๋ฐฐํฌํ ์ ์๋ ํ๋ก๊ทธ๋จ์ ๋๋ค. ๊ธฐ๋ณธ ์๋ฆฌ ํต์ฌ์ ์ฑ ๋๋ ํ๋ก์ ํธ์์ ๊ตฌ์ฒด์ ์ผ๋ก ์ ์๋ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ ๋๋ง๋ค ํด๋ผ์ฐ๋ ํจ์๋ฅผ ํตํด ์์ ์ ์ํํ๋ ๊ฒ์ ๋๋ค. ์ ๊ณตํ๋ ์๋ฃจ์ ๋ค์ ์๋์ ๊ฐ์ด ์ด๋ฏธ์ง ํฌ๊ธฐ ์กฐ์ ,์ฌ์ฉ์ ๋ฐ์ดํฐ ์ญ์ ,ํ ์คํธ ๋ฒ์ญ ๋ฑ ์์ฃผ ์ ์ฉํ ํ๋ก๊ทธ๋จ๋ค์ด ์์ต๋๋ค. ์ฃผ์ํ์ค ์ ์ ์์ง ๋ฒ ํ ์ถ์ ๋ฒ์ ์ด๋ฏ๋ก ๊ธฐ๋ฅ์ด ๋ณ๊ฒฝ๋๊ฑฐ๋ ์ง์์ด ์ ํ๋ ์ ๋ ์์ต๋๋ค. ์ด๋ป๊ฒ ์ฌ์ฉํ๋๋ฐ? ๐คจ ๋ง์ ํ์ฅ ํ๋ก๊ทธ๋จ ์ค ์ฌ์ฉ์ ๋ฐ์ดํฐ ์ญ์ ๋ฅผ ์์๋ก ์ค๋ช ๋๋ฆฌ๊ฒ ์ต๋๋ค. ์ฌ์ฉ์ ๋ฐ์ดํฐ ์ญ์ ์ ํ๋์ Install ๋ฒํผ์ ๋๋ฌ์ฃผ์ธ์. ๊ทธ ๋ค.. 2021. 5. 24. [Firebase] ํ์ด์ด๋ฒ ์ด์ค ์ค์๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฌ์ฉํด๋ณด๊ธฐ(Realtime Database Write,Read,Update,Delete) ์๋ ํ์ธ์ Foma ์ ๋๋ค! ์ค๋์ ํ์ด์ด๋ฒ ์ด์ค์ ์ค์๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค(๋ฆฌ์ผํ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค)๋ฅผ ์ฌ์ฉํด๋ณด๋ ค๊ณ ํฉ๋๋ค! ๋ฐ๋ก ์์ํ ๊ฒ์~ (ํน์ ํ๋ก์ ํธ ์ธํ ํ๋๋ฒ์ ๋ชจ๋ฅด์ ๋ค๋ฉด ๋จผ์ ์ฌ๊ธฐ ๋ฅผ ๋ณด๊ณ ์์ฃผ์ธ์~) Realtime Database ํ์ด์ด๋ฒ ์ด์ค ์ฝ์์ฌ์ดํธ๋ก ์ด๋ํ์ ์ Realtime Database๋ฅผ ๋๋ฌ์ฃผ์ธ์. ๊ทธ๋ฌ๋ฉด ์์ํ๊ธฐ ๋ฒํผ์ด ์์ํ ๋ฐ ์์ํ๊ธฐ๋ฅผ ๋๋ฌ์ฃผ์๊ณ ํ ์คํธ ๋ชจ๋๋ก ๋ฐ์ดํฐ ๋ฒ ์ด์ค๋ฅผ ๋ง๋ค์ด์ฃผ์ธ์! ์ด๋ ๊ฒ ํ๋ฉด ๋ค์๊ณผ ๊ฐ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์ธํ ๋ ๊ฑฐ์์! Terminal ํด๋น ํ๋ก์ ํธ๋ก ์ด๋ํ์ ๋ค ํํ์ผ์ ๋ง๋ค์ด์ฃผ์๊ณ podfile์ pod 'Firebase/Database' ๋ฅผ ์ถ๊ฐํด์ฃผ์ธ์. pod 'Firebase/Database' pod install์ ํด์ค๋๋ค. ์ค์น๊ฐ ์๋ฃ๋๋ฉด ์๋.. 2021. 4. 15. [Firebase] Firebase ๊ฐ๊ฒฉ์ ๋ํด์ ์์๋ณด๊ธฐ(Firebase Pricing) ์๋ ํ์ธ์ Foma ์ ๋๋ค. ์ต๊ทผ ํ๋ก์ ํธ๋ฅผ ํ์ด์ด๋ฒ ์ด์ค๋ก ์ฌ์ฉํ๋ฉด์ ์ด์ ๋ ์ ์ ๊ฐ ์ด์ ๋ ์ฐ๋ฉด ์ผ๋ง๋ ๋์ค๊ฒ ๋ค ํ๋ฉด์ ๊ฐ๊ฒฉ์ ์ธก์ ํด๋ณด์๋๋ฐ์. ์ด๋ฒ ๊ธฐํ์ ํ์ด์ด๋ฒ ์ด์ค์ ๊ฐ๊ฒฉ์ด ์ผ๋งํผ ์ธก์ ๋๋์ง ์ ๋ฆฌํด๋ณด๋ ค๊ณ ํฉ๋๋ค. ๋ฐ๋ก ์์ํ ๊ฒ์~ Free ๐ ๋ฌด์ ํ ๋ฌด๋ฃ๋ก ์ ๊ณต๋๋ ์๋น์ค A/Bํ ์คํธ ์ ๋๋ฆฌํฑ์ค ์ฑ ๋ฐฐํฌ ์ฑ ์์ธ ์์ฑ ํด๋ผ์ฐ๋ ๋ฉ์ธ์ง ํฌ๋์ฌ๋ฆฌํฑ์ค ๋ค์ด๋๋ฏน ๋งํฌ ๋ฆฌ๋ชจํธ ์ปจํผ๊ทธ Authentication ์ ํ ์ธ์ฆ ๋ฌด๋ฃ ์๊ธ์ ์ 1๋ง๋ฒ ๋ฌด๋ฃ์ ๊ณต ์ข ๋์ ์๊ธ์ ์ธ์ฆ 1ํ๋น 0.06$(68์) Cloud Firestore ๋ฌด๋ฃ ์๊ธ์ ์ด 1๊ธฐ๊ฐ ๋ฐ์ดํธ๊น์ง ์ ์ฅํ ์ ์์ผ๋ฉฐ ํ๋ฃจ์ 2๋ง๋ฒ ์ฐ๊ธฐ 2๋ง๋ฒ ์ญ์ 5๋ง๋ฒ๊น์ง ์ฝ๊ธฐ๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ข ๋์ ์๊ธ์ 1๊ธฐ๊ฐ๋น 0.192$(200์) ์ฐ๊ธฐ: 10๋ง๋ฒ ๋น 0... 2021. 3. 30. Firebase๋ฅผ ์ด์ฉํ User ์์ฑ ๋ฐ Firestore์ ์ ์ ๋ฐ์ดํฐ ์ ์ฅ podfile์ ์์ ๊ฐ์ด ์ถ๊ฐ ํด์ค ๋ค ํฐ๋ฏธ๋์์ ํด๋น ํ๋ก์ ํธ๊ฐ ์๋ ํด๋์ ์ด๋ํ ๋ค pod install์ ํด์ฃผ๊ณ ๊ทธ๋ฆฌ๊ณ Appdelegate๋ก ์ด๋ํ ๋ค Firebase๋ฅผ importํด์ค๋ค, ๊ทธ ๋ค์ ์ ํจ์๋ก ์ด๋ํ ๋ค FirebaseApp.configure()์ ํด์ฃผ๊ณ ํ์๊ฐ์ ํ์ด์ง๋ก ์ด๋ํด์ ์ ๋๊ฐ๋ฅผ importํด์ค ๋ค ํ์๊ฐ์ ๋ฒํผ ๋๋ฅด๋ ๊ณณ์ ์์ ๊ฐ์ ํจ์๋ฅผ ์ถ๊ฐ ํด์ฃผ๋ฉด ๋! let db = Firestore.firestore()์ ๋ฐ์ดํฐ๋ฅผ ํ์ด์ด์คํ ์ด์์ ๊ฐ์ ธ์จ๋จ ์๋ฏธ ์์ ๊ฐ์ด ์ ์ฅ๋๋ค. ๊ฑฐ๊ธฐ์ collection์ ์ด๋ฆ์ "users"์ด๊ณ ๊ทธ ์์ document์ ์ด๋ฆ์"๊ฐ์ ํ๋ ์ด๋ฉ์ผ"๋ก ๊ทธ ์์ email,name์ด๋ผ๋ ํ๋์ ๊ฐ ๊ฐ ์ด๋ฆ๊ณผ ์ด๋ฉ์ผ์ ๋ฃ์ด์ค๋ค๋ ๋ป 2019. 11. 23. Firebase๋ฅผ ์ด์ฉํ ๋น๋ฐ๋ฒํธ ์ฌ์ค์ ์ด๋ฉ์ผ ๋ณด๋ด๊ธฐ FirebaseAuth๋ฅผ import ํด์ค ๋ค ์ ์ฝ๋ withEmail: ์ฐพ์ ๋น๋ฐ๋ฒํธ ์ด๋ฉ์ผ์ ์ ์ด์ฃผ๋ฉด ์ ์ด๋ฉ์ผ๋ก ์ด๋ฌํ ๋งํฌ๊ฐ ์จ๋ค. ๋งํฌ๋ฅผ ํด๋ฆญํ๋ฉด ๋น๋ฐ๋ฒํธ๋ฅผ ์ฌ์ค์ ํ๋ผ๊ณ ๋ฌ ๋ค ์๋ก์ด ๋น๋ฐ๋ฒํธ๋ฅผ ์ ์ด์ฃผ๋ฉด ๋น๋ฐ๋ฒํธ๊ฐ ์ฌ์ค์ ๋๋ค. 2019. 11. 23. ์ด์ 1 ๋ค์ 728x90 ๋ฐ์ํ