반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- c++
- 멀티맵
- 파이어베이스
- 백트래킹
- 그래프 탐색
- 풀이
- 시뮬레이션
- 문자열
- 코틀린
- map
- c++풀이
- 그래프 이론
- dfs
- 에러
- 다이나믹 프로그래밍
- 다익스트라
- BFS
- 코드트리 조별과제
- 백준
- 브루트포스
- 코드트리
- 맵
- 안드로이드
- 분할정복
- 파이어스토어
- 코드트리조별과제
- 그래프
- dp
- 코딩테스트
- 자료 구조
Archives
- Today
- Total
Kangho_Story
[안드로이드 코틀린 Kotlin] 파이어베이스 파이어스토어에 저장하기 위한 객체 생성하기 본문
728x90
반응형
코틀린으로 파이어베이스에 데이터를 넣고 빼는 작업을 수월하게 하기 위해서 객체를 생성하려고 한다.
내가 생성한 DB 구조의 틀은 이러하다. 한눈에 보기에도 꽤나 복잡한 형식임을 알 수 있다.
우선 유저에는 UID, address, firstLogin, name, crop, inventory, chat 등의 필드가 존재한다.
UID나 firstLogin 처럼 단순한 String 또는 Boolean이면
var UID : String?
var firstLogin : Boolean = false
이런 식으로 바로 정의가 가능하다.
하지만 inventory나 crop 같은 복잡한 형식도 존재한다.
inventory는 size2의 배열이다. 각 배열에는 key가 String이고 velue가 Int인 HashMap이 여러 개 들어있다.
이를 변수로 만들면
var inventory : Array<HashMap<String, Int>> = arrayOf(hashMapOf())
이렇게 된다.
crop은 inventory와 유사하지만 다르다.
crop은 사이즈가 정해지지 않은 배열 내부에 HashMap이 존재하는데 이 HashMap의 Key는 String이고 Value는 Double타입의 배열이다. 이러한 구조는 꽤나 복잡하기 때문에 Crop이라는 객체를 추가적으로 생성해서 Crop 타입의 Array를 정의하는 식으로 구현했다.
var crop : Array<Crop>
Crop.kt
data class Crop(
var crop : HashMap<String, Array<Double>> =
hashMapOf(Pair("darkness", arrayOf<Double>()),
Pair("humidity", arrayOf<Double>()),
Pair("moisture", arrayOf<Double>()),
Pair("temperature", arrayOf<Double>()))
)
User.kt
data class User(
var UID : String?,
var address : String? ,
var firstLogin : Boolean = false,
var name : String?,
var sector : String?,
var crop : Array<Crop>,
var inventory : Array<HashMap<String, Int>> = arrayOf(hashMapOf()),
var chat : Array<String>
)
끝!
728x90
반응형
'Android' 카테고리의 다른 글
Comments