Constants ํ์ผ์ ์์ฑํ ํ์, ๋ณํ์ง ์๋ ๋ฐ์ดํฐ๋ค์ ๋ณด๊ดํ๋ค.
์๋ฅผ ๋ค๋ฉด, Firebase์์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ๋ document์ ๋ฃ๋ data์ ํ์ ์ด [String: Any]์ด๋ค. ์ฌ๊ธฐ์ String์ ํค๊ฐ์ด๋ค. ์ด ํค ๊ฐ์ ๋งค๋ฒ ์์ฑํ๋ค ์ฒ ์๋ฅผ ํ๋ฆฌ๊ฒ ์์ฑํ๋ ๊ฒฝ์ฐ๊ฐ ๋ฐ์ํ ์ ์๊ธฐ์ ๋ฐ๋ก ์ ์ฅํ๋ ๊ฒ์ด ๋ฐ๋์งํ๋ค.
์์๋ ๊ด๋ก์ ์ผ๋ก ์๋ฌธ ๋๋ฌธ์ ์ค๋ค์ดํฌ ํ๊ธฐ๋ฒ์ ์ฌ์ฉํ์ฌ ์ ์ธํ๋ค.
let KEY_PROFILE_IMAGE_URL = "profileImageUrl"
ํ๋กํ ์ฌ์ง ๋ฐ์ดํฐ๋ฅผ ์์ฑํ๋ ๊ฒฝ์ฐ ๋ค์๊ณผ ๊ฐ์ด ์ฌ์ฉํ ์ ์๋ค.
let data: [String: Any] = [KEY_PROFILE_IMAGE_URL: imageUrl]
์ด๊ฑฐํ์ ๊ด๋ จ๋ ๊ฐ์ผ๋ก ์ด๋ฃจ์ด์ง ๊ทธ๋ฃน์ ๊ณตํต์ ํ์ ์ผ๋ก ์ ์ธํด ํ์ ์์ ์ฑ์ ๋ณด์ฅํ๊ฒ ๋๋ค. enum ํค์๋๋ฅผ ์ฌ์ฉํด ์ด๊ฑฐํ์ ์ ์ํ๋ค.
enum DatabaseKeys: String {
case profileImageUrl = "profileImageUrl"
}
DatabaseKeys.profileImageUrl์ Dictionary keyํ์ ์ด๋ฏ๋ก .rawValue๋ฅผ ๋ถ์ฌ ์์๊ฐ์ผ๋ก ๋ฃ์๋ค.
let data: [String: Any] = [DatabaseKeys.profileImageUrl.rawValue: imageUrl]
Apple Developer Documentation - rawValue
The corresponding value of the raw type.
enum์ rawValue๋ฅผ ๊ณ์ ์จ์ผํ๋ ๋ถํธํจ์ด ์๊ธฐ์ ํ์ํ ํญ๋ชฉ์๋ง ์ฐ๋ ๊ฒ์ด ์ข๋ค.
struct Const {
struct DatabaseKey {
static let profileImageUrl = "profileImageUrl"
}
...
}
Const์ DatabaseKey์ profileImageUrl์ ๊ฐ์ ธ์จ๋ค.
let data: [String: Any] = [Const.DatabaseKey.profileImageUrl: imageUrl]