• 로그인
  • 장바구니에 상품이 없습니다.

home2 게시판 Flutter 게시판 임시 저장소 사용자별로 다르게 접근하게 하는 문제

임시 저장소 사용자별로 다르게 접근하게 하는 문제

3 글 보임 - 1 에서 3 까지 (총 3 중에서)
  • 글쓴이
  • #26759

    권유진
    참가자

    임시 저장소 활용해서 쇼핑앱 같은거에 장바구니를 구현해보려고 하는데요.

    이때 한 핸드폰 기기로 여러 사용자가 접속한다고 했을때, 서로 각각의 데이터가 다르게 저장이 되야 하는데

    저장소에서 같은 저장소명으로 접근하다보니까, 서로의 장바구니 아이템이 겹치는 문제가 생겨서요.

    처음엔은 storage 명을 storage_a, storage_b, storage_c .. 이런식으로 a,b,c 사용자별로 storage 객체명을 다르게 접근하게 하면 딱이다 싶었는데, 변수명 자체를 변수화 할 수가 없어서, 이건 안되겠다 싶었고,

    하나 또 다른 방법을 생각한게

    먼저 스트링 리스트 변수를 만들어서 임시로 거기에 담은 다음에, 

    List<String> items = [];

    사용자가 같은 사용자면, 리스트에 add 해서 아이템을 추가하고, 사용자가 바뀌면 리스트를 먼저 지우고, 새로 아이템을 add 하고,

    그걸 가지고 다시

     

    스토리지에 담는데, 이때, 스토리지 만들때 안에 uid 를 매개변수로 가져가서, uid 로 데이터 구분할 수 있게 하구요.

    storage.setString('store_${uid}', uid);

    storage.setStringList('store_${uid}_items', items);

     

    스토리지가 있는지, 스토리지가 없는지?

    스토리지가 있다면, 그안에 uid 가 현재 접속한 uid 와 같은지?

    스토리지가 있고, uid 가 같다면, 거기에 아이템 추가만 하면 되고,  스토리지가 없으면 새로 스토리지 만들고, 있어도 uid 가 다르다면

    uid 가 다른 정보로 스토리지를 셋팅해야 하고... 이렇게 생각을 했었는데요.

     

    리스트에서 add 하는 것처럼 스토리지에서는 add 할 수가 없고, 그냥 set 으로 통으로 바꾸니까,

    문제가 사용자 a 가 제품을 담고, 다시 b 가 로그인 해서 제품을 담은거까지는 구분이 되는데,

    다시 여기서 사용자 a가 들어와서 이어서 담을라고 하면, 앞에서 items에서 사용자가 바뀌면 clear() 하게 해놔서, 

    a 가 담았던 아이템은 다 날라가고, 다시 처음부터 셋팅을 해야하더라구요. 그렇다고 clear() 을 안하면,

    a 가 고른 아이템과 b 가 고른 아이템이 합쳐져서 문제이구요.

     

    질문이 길어졌는데 정리하자면

    1. storage 명을 변수화해서 매개변수 값으로 storage_사용자id 이런식으로 만들 순 없을지?

    2. storage.setStringList 할 때, 통으로 바꾸는게 아니라, 기존에 값이 있으면 이어서 add 만 할 수는 없는지?

    3. 그밖에 다른 좋은 방법이 없을지...?

     

    문의 드립니다. 감사합니다.

     

     

     

     

     

     

     

    #26760

    권유진
    참가자

    임시 해법으로, a 로 담았다가 b로 담았다가 다시 a 로 이어서 담으려고 할 때....

    다시 담으면서 items 는 리셋되지만, store 에는 남아있으므로, 기존에 접속했던 사용자가 달라서

    items 를 삭제하고서 새로 담을려고 할 때, store 에 데이터가 있다면, 그걸 items 로 옮겨서

    items 를 리셋하고,  store 에 남아있던걸 -> items 로 옮겨놓고, 다시 여기서 add 를 하면 되긴 되겠네요. 

    #26777

    codingapple
    키 마스터

    앱마다 storage는 하나밖에 없을걸요 거기 안에서 key 이름만 잘 구분하면 데이터 잘 저장할 수 있을겁니다 

    '${uid}', [ 상품1, 상품2 ] }

    이렇게 저장하라고 하면 별문제없을 것 같은데요 

3 글 보임 - 1 에서 3 까지 (총 3 중에서)
  • 답변은 로그인 후 가능합니다.

About

현재 월 700명 신규수강중입니다.

  (09:00~20:00) 빠른 상담은 카톡 플러스친구 코딩애플 (링크)
  admin@codingapple.com
  이용약관
ⓒ Codingapple, 강의 예제, 영상 복제 금지
top

© Codingapple, All rights reserved. 슈퍼로켓 에듀케이션 / 서울특별시 강동구 고덕로 19길 30 / 사업자등록번호 : 212-26-14752 온라인 교육학원업 / 통신판매업신고번호 : 제 2017-서울강동-0002 호 / 개인정보관리자 : 박종흠