본문 바로가기
안드로이드 개발/📱 카드매니저 (가칭)

230321 카드매니저 개발 일지

by 아이엔 / ienground 2023. 3. 21.

이제 로그인 자체는 성공했다. 
로그인하고 Firebase에 로그인한 후, Firestore Database에 접근하게 할 것이다.

Email: ericano.rhee@gmail.com
2023-03-21 20:55:31.452 22449-22449 CardmanagerTAG          zone.ien.cardmanager                 D  Name: Ericano Rhee (아이엔)
2023-03-21 20:55:31.452 22449-22449 CardmanagerTAG          zone.ien.cardmanager                 D  Name: https://lh3.googleusercontent.com/a/AGNmyxax7x_NEMQ_nT9jzoaIzIJ_hj1_bOzwOItyYYuL3RI=s96-c
2023-03-21 20:55:33.273 22449-22449 CardmanagerTAG          zone.ien.cardmanager                 D  signInWithCredential success
2023-03-21 20:55:33.273 22449-22449 CardmanagerTAG          zone.ien.cardmanager                 D  user: {user_id}

세션도 유지돼서 매번 로그인하지 않아도 getLastSignedInAccount 메소드를 통해서 정보를 유지할 수 있다.

Firestore Database 구조에 대해서도 생각해보았다.

먼저 사용 기록을 나타내는 data 컬렉션이다.

data 컬렉션 내에는 각 user_id로 문서가 생성된다. username이라고 해두었는데 username 아니고 id. 이건 Google 로그인하면서 생기는 값이다. uid. 그리고 그 아래에는 table1, table2 등의 필드가 생기겠다. 지금은 table_id라는 필드를 따로 만들어두었지만 필드 이름으로 테이블을 찾게 할 것이다.

그리고 이 table을 공유할 수 있는 기능을 추가할 것이므로 shared_user라는 array가 있다. 이 array에 있는 user들은 접근이 가능함. 근데 이 값들을 user 컬렉션에서도 유지하는데, 그래서 어떤 테이블을 공유할 때에는 data 컬렉션, user 컬렉션에 둘 다 접근하여 값을 수정할 필요가 있다.

name, content는 앱 내에서 볼 수 있는 table의 이름과 설명이다.

goal_money는 table의 실적 값이며 data array에는 각 행들이 들어간다.

각 행에는 title, content, money, timestamp가 있다. 당연히 제목, 내용, 돈, 시간 순이다.

 

더 추가해야 할 열이 있을까?

user 컬렉션에는 많은 값을 유지할 필요가 없다. 왜냐면 username, email, profile_url 등은 실시간으로 받아오면 되고 딱히 유저의 정보를 활용할 애들이 없기 때문이다. 필요한 건 이 유저가 공유받은 table이 뭔지, shared_content array를 통해 관리하는 것이다.