• 카테고리

    질문 & 답변
  • 세부 분야

    모바일 앱 개발

  • 해결 여부

    미해결

firestore 데이터 불러오기 질문

21.07.10 15:57 작성 조회수 362

0

안녕하세요 개복치님 최대한 자세하게 질문 설명드렸습니다.도움부탁드립니다 ㅠ

일단 저는 ZzimItemModel이라는 데이터 클래스를 만들어주었습니다.안에는 Int와 Bool타입 하나씩 넣을수있습니다.

위사진을 보시면 저는 데이터를 firestore에 저장할때 hashMapOf를 사용하였고 value인수부분에는 데이터 클래스인 ZzimItemModel 을 넣어주었습니다. 각각에는 Int와 bool이 하나씩 들어가시는것을 볼수있습니다.

위사진은 이제 데이터를 불러오는 과정입니다. 40번줄을 보시면 log로 찍어본결과 logcat에 불타입과 인트타입이 잘나오는것을 을 보실수있습니다.

파이어스토어에서도 확인해보면 밑에 사진처럼 잘들어간것을 확인 할수있습니다.그런데 여기서 제가 질문할것은 무엇이냐면 위 사진에 41번 줄을보시면 document.get(lecutreN)이런식으로하면 해당 key에 맞게 value값은 잘가져옵니다 그런데 저는 value값에 exist를 가져오고싶은데 그 방법을 모르겠습니다.메소드를 확인해봐도 안나오고 혹시 방법을 아시나해서 질문드립니다.exist는 bool타입으로 처음 파이어스토어에 저장할때 ZzimItemModel에 bool타입 exist입니다.

2번째사진은 새탭에서 열기하면 더욱더 잘보입니다 개복치님

답변 3

·

답변을 작성해보세요.

0

전체 코드를 깃허브에 올리셔서 공유주시면 한번 살펴보겠습니다~

신정용님의 프로필

신정용

질문자

2021.07.11

깃허브를 안써봤습니다.깃허브 코드 올리기라고 구글에 쳐서 따라하면 될까요??

네 맞습니다~ 깃허브 데스크탑 사용법이라고 검색하시면 될거에요~

앞으로 코드 관리를 하실 때 깃허브는 유용하게 쓰이실테니, 사용법을 익혀놓으시는게 좋습니다.

인프런에서도 깃허브 사용 관련해서 좋은 강좌들이 많으니 제대로 배워보고 싶으시면, 강좌를 수강하시는 것도 좋은 방법입니다~

신정용님의 프로필

신정용

질문자

2021.07.11

아그러면 좀있다가 오후에 일어나서 깃허브 강의 듣고 그대로 코드 올려보겠습니다.그때 다시 답변드릴게요 감사합니다~

신정용님의 프로필

신정용

질문자

2021.07.11

개복치님 그냥 제 프로젝트를 이메일로 보내드려도될까요?

네~ uyalae@naver.com 입니다

신정용님의 프로필

신정용

질문자

2021.07.11

보냈습니다~한번 봐주세요 제가 질문드린부분만 봐주시면됩니다 ㅎㅎ

0

그리고 이제 강의를 여러개 들으신 것 같은데

개인 프로젝트도 함께 병행하시면 더 좋을 것 같습니다~

신정용님의 프로필

신정용

질문자

2021.07.11

저만의 앱을 만들어보라는 말씀이신가요? 지금 현재 개복치님의 신규강의인 커뮤니티 만들기도 듣고있습니다.그다음 후속 강의들도 많은걸로 알고있습니다.그것을 다 듣고 제가 만들어보고싶은것을 만들지 아니면 지금부터 만들어볼지 고민이 되고있긴한데 개복치님께서는 현재 강의병행하면서 직접 앱도 만들어보는것을 추천해주시는거죠??

네 맞습니다~ 강의와 병행해서 별도로 만들고 싶으신 프로젝트를 시작하시면 실력이 좀 더 빠르게 느실거에요~

공부하시는데 강의 30%, 개인프로젝트 70% 정도의 시간을 쓰시면 더 좋을 것 같습니다~

신정용님의 프로필

신정용

질문자

2021.07.11

아 그렇군요 공부방법을 제시해주셔서 감사합니다.저도 커뮤니티앱을 만들어볼려고 했는데 일단 그러면 커뮤니티 강의를 한번보고 그다음에 강의를 보지않고서 저만의 방식대로 커뮤니티앱을 구현해봐도 효과가 있을까요??

네 강의를 보고 한번 따라해보시고

직접 만드시면서 모르는 부분이 있으시면 다시 강의부분을 참고하시면 될 것 같습니다~

강의에서 나온 방법 뿐만이 아니라, 구글링을 통해서 알게된 다양한 방법들을 시도해보시면 좋습니다~

신정용님의 프로필

신정용

질문자

2021.07.11

감사합니다 늦은 시간까지 빠른 답변해주시고 직접 조언까지 해주시고 영광입니다.ㅎㅎ열심히 한번 달려보겠습니다.

아닙니다~ 강의 잘 들어주셔서 제가 감사합니다~ 끝까지 파이팅입니다~~!

0

데이터를 받아오는 부분에 대한 질문이시네요 

ZzimItemModel 형태로 데이터를 넣어주셨으면 받는 것도 ZzimItemModel 모델 형태로 받아주셔야 합니다.

아래를 참고하여 documents.data.exist와 같이 원하는 값을 빼 와 보시겠어요?

문서를 참고하시면 더 좋습니다.

https://firebase.google.com/docs/firestore/query-data/get-data#kotlin+ktx

<devsite-selector scope="lang" active="kotlin+ktx-android" ready style="box-sizing:inherit;--devsite-border:1px solid #dadce0;--devsite-border-radius:8px;--devsite-content-border-radius:0 0 7px 7px;--devsite-link-hover:#5f6368;--devsite-tab-marker-color:#5f6368;--devsite-overflow-tab-background:#f1f3f4;--devsite-overflow-tab-border-radius:0 7px 0 0;--devsite-overflow-link-background-hover:#e8f0fe;pointer-events:auto;visibility:visible;border:var(--devsite-border,var(--devsite-secondary-border));border-radius:var(--devsite-border-radius,0);display:block;font-family:Roboto, 'Noto Sans', 'Noto Sans JP', 'Noto Sans KR', 'Noto Naskh Arabic', 'Noto Sans Thai', 'Noto Sans Hebrew', 'Noto Sans Bengali', sans-serif;margin:var(--devsite-selector-margin,16px 0);color:#202124"></devsite-selector>

<devsite-code data-copy-event-label style="box-sizing:inherit;--devsite-code-background:#f1f3f4;--devsite-code-color:#37474f;--devsite-code-button-size:32px;border:var(--devsite-code-border,0);border-radius:var(--devsite-code-border-radius,0);clear:both;display:block;margin:0px -23px;overflow:hidden;position:relative;direction:ltr !important"><span class="pln" style="box-sizing:inherit">db</span><span class="pun" style="box-sizing:inherit">.</span><span class="pln" style="box-sizing:inherit">collection</span><span class="pun" style="box-sizing:inherit">(</span><span class="str" style="box-sizing:inherit;color:#0d904f">"cities"</span><span class="pun" style="box-sizing:inherit">)</span><span class="pln" style="box-sizing:inherit"><br style="box-sizing:inherit" />        </span><span class="pun" style="box-sizing:inherit">.</span><span class="pln" style="box-sizing:inherit">whereEqualTo</span><span class="pun" style="box-sizing:inherit">(</span><span class="str" style="box-sizing:inherit;color:#0d904f">"capital"</span><span class="pun" style="box-sizing:inherit">,</span><span class="pln" style="box-sizing:inherit"> </span><span class="lit" style="box-sizing:inherit;color:#c53929">true</span><span class="pun" style="box-sizing:inherit">)</span><span class="pln" style="box-sizing:inherit"><br style="box-sizing:inherit" />        </span><span class="pun" style="box-sizing:inherit">.</span><span class="kwd" style="box-sizing:inherit;color:#3b78e7">get</span><span class="pun" style="box-sizing:inherit">()</span><span class="pln" style="box-sizing:inherit"><br style="box-sizing:inherit" />        </span><span class="pun" style="box-sizing:inherit">.</span><span class="pln" style="box-sizing:inherit">addOnSuccessListener </span><span class="pun" style="box-sizing:inherit">{</span><span class="pln" style="box-sizing:inherit"> documents </span><span class="pun" style="box-sizing:inherit">-></span><span class="pln" style="box-sizing:inherit"><br style="box-sizing:inherit" />           </span><span class="pln" style="box-sizing:inherit"><br style="box-sizing:inherit" />                </span><span class="typ" style="box-sizing:inherit;color:#9c27b0">Log</span><span class="pun" style="box-sizing:inherit">.</span><span class="pln" style="box-sizing:inherit">d</span><span class="pun" style="box-sizing:inherit">(</span><span class="pln" style="box-sizing:inherit">TAG</span><span class="pun" style="box-sizing:inherit">,</span><span class="pln" style="box-sizing:inherit"> </span><span class="str" style="box-sizing:inherit;color:#0d904f">"${documents.id} => ${documents.data}"</span><span class="pun" style="box-sizing:inherit">)</span><span class="pln" style="box-sizing:inherit"><br style="box-sizing:inherit" />           </span><span class="pln" style="box-sizing:inherit"><br style="box-sizing:inherit" />        </span><span class="pun" style="box-sizing:inherit">}</span><span class="pln" style="box-sizing:inherit"><br style="box-sizing:inherit" />        </span><span class="pun" style="box-sizing:inherit">.</span><span class="pln" style="box-sizing:inherit">addOnFailureListener </span><span class="pun" style="box-sizing:inherit">{</span><span class="pln" style="box-sizing:inherit"> exception </span><span class="pun" style="box-sizing:inherit">-></span><span class="pln" style="box-sizing:inherit"><br style="box-sizing:inherit" />            </span><span class="typ" style="box-sizing:inherit;color:#9c27b0">Log</span><span class="pun" style="box-sizing:inherit">.</span><span class="pln" style="box-sizing:inherit">w</span><span class="pun" style="box-sizing:inherit">(</span><span class="pln" style="box-sizing:inherit">TAG</span><span class="pun" style="box-sizing:inherit">,</span><span class="pln" style="box-sizing:inherit"> </span><span class="str" style="box-sizing:inherit;color:#0d904f">"Error getting documents: "</span><span class="pun" style="box-sizing:inherit">,</span><span class="pln" style="box-sizing:inherit"> exception</span><span class="pun" style="box-sizing:inherit">)</span><span class="pln" style="box-sizing:inherit"><br style="box-sizing:inherit" />        </span><span class="pun" style="box-sizing:inherit">}</span></devsite-code> <devsite-code data-copy-event-label style="box-sizing:inherit;--devsite-code-background:#f1f3f4;--devsite-code-color:#37474f;--devsite-code-button-size:32px;border:var(--devsite-code-border,0);border-radius:var(--devsite-code-border-radius,0);clear:both;display:block;margin:0px -23px;overflow:hidden;position:relative;direction:ltr !important"> <pre class="lang-kotlin" translate="no" dir="ltr" data-code-snippet="true" data-github-path="firebase/snippets-android/firestore/app/src/main/java/com/google/example/firestore/kotlin/DocSnippets.kt" data-region-tag="get_multiple" is-upgraded style="box-sizing:inherit;background:var(--devsite-code-background);color:var(--devsite-code-color);font:14px/20px var(--devsite-code-font-family);padding-left:23px;direction:ltr !important;text-align:left !important;margin:0px;overflow-x:auto;position:relative;border-radius:var(--devsite-content-border-radius,0)"></pre> </devsite-code>
신정용님의 프로필

신정용

질문자

2021.07.11

이것만 봐서는 잘모르겠습니다.직접적인 예시를 보여주실수있을까요? 위에서 질문드렸듯이 firestore에 Lang안에  exist를 가져오고싶습니다.너무 여렵네요..