팀 프로젝트 작업
- 캘린더 약속 있는 칸 : 약속 상세내용 불러오기-모달창
띄우고 날짜값도 해당 날의 값을 받아오기까지 했다. 이제 문제는 해당 날짜에 약속이 있는 모임을 골라야 하는 점인데 이 파트가 난해하다
날짜값까지 찾아가는 방식이 groups(컬렉션)-해당모임id(문서)-gAppoint(배열)-N(인덱스번호)-time(날짜)인데 어떻게 인덱스마다 일치하는 값을 찾아서 들고올 지가 문제이다. 즉, 2번의 반복문이 필요하다. 1번째 반복은 자신이 속해있는 모임별로 반복이 되야 하고 그 안에서 2번째 반복인 인덱스 번호마다 접근해서 날짜값을 비교해야한다. 일단 세션 스토리지에서 group에서 그룹 갯수가 나오고 그 안에서 gAppoint의 갯수가 나오기는 한다. 이를 어떻게 쿼리로 지정을 해야 할 지가 문제이다
정리를 하면 단일 약속값에만 찾아서 그 값에 해당하는 상위문서값들을 들고와야 한다.
현재 조언받은 방법 : 세션스토리지에는 firestore값들이 그대로 들어오니 그 값들 중 원하는 값들만 골라내서 객체로 만들어 그 객체들을 배열로 만든 뒤 해당 값이 있는 객체만 골라내서 쓰는 방법
생각을 많이 해야 할 듯 하다. gName,member는 동일하지만 gAppoint의 인덱스별 title과 date 값을 따로 들고 와야 한다.
gName:한 그룹에서 고정 / member : 한 그룹에서 고정이나 배열로 따로 골라내서 들고와야함 - 모임상세 약속 추가 -> 모임캘린더 특정 표시+마이캘린더 약속컬러 추가
모임캘린더에 친구들의 약속 날짜들(더미데이터) 와 모임캘린더에서 추가한 약속날짜들(세션스토리지) 값을 구별했다.
기존에는 둘을 합쳐서 하나의 배열에 나타내는 방법을 썼지만 이번에는 둘의 배열을 따로 나누어서 bool 값을 넣은 뒤
or연산자를 이용해 둘 다 false인 날을 삼항연산자로 먼저 골라내 기본달력 표시로 나타내고
둘의 날짜가 겹칠수가 없기 때문에 삼항연산자를 이용해 각자 표시를 다르게 했다
밑의 경우 사실상 정상적인 방법으로 돌아가는 방식은 아니다. 왜냐하면 모임의 약속이 잡히면 그 값이 개인에게도 전달되어서 추가되어야 자신이 속해있는 다른모임에서도 그 값을 띄워야 약속이 겹쳐지지 않는다. 현재 그 방식을 쓰지 못하는 이유는 더미데이터로 만들었다 보니 추가가 되지 않는다
1번을 차근차근 보기로 했다
세션스토리지에서 값을 받아와서 일단 0번째 인덱스에 공통으로 접근해서 gAppoint,gName,member를 접근해보았다. gAppoint는 다시 time과 title로 접근하고 member의경우 fName만 접근해보았다. gName은 문자열, 나머지 3개는 배열로 나왔다. 그러면 공통으로 접근한 뒤 다시 map으로 gAppoint로 접근해서 time과 title은 따로 가져오고 member과 gName은 공통이니 단일로 꺼내서 합치는 방법을 써야 할 듯 하다 일단 0번째 인덱스들만 들고올 경우 {gAppoint[0].time, gAppoint[0].title, gName,member.map((list)=>list.fName))}
와 같은 객체가 될 듯 하다