인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

최현준님의 프로필 이미지

작성한 질문수

[2025 리뉴얼]플러터플로우로 코딩 없이 한달 안에 앱 만들기

[2025 리뉴얼] 트윗 나열하기 (Listview, Document from Reference)

날짜별 시간별 질문드립니다.

해결된 질문

작성

·

62

0

안녕하세요
너무 너무 강의 잘 듣고 있습니다

궁금한 사항이 있어서 질문 납깁니다

우선, 날짜별 클릭시
아래 리스트뷰에 시간별로 유저가 등록된 내용이 보이게 만들고 싶은데, 이건 어떻게 구현할 수 있을까요?

참고사진 첨부합니다

스크린샷 2025-04-23 오후 11.11.32.png.webp

답변 2

0

피어낫프로덕님의 프로필 이미지
피어낫프로덕
지식공유자

안녕하세요 현준님, 답변이 조금 늦어 죄송합니다.

제가 이전에 비슷한 프로젝트를 구현한 적이 있었는데요.

 

간단히 로직만 말씀 드리면 다음과 같습니다.

  1. 선택한 날자를 로컬 변수로 저장합니다. (customFunction 이용)

  2. 선택한 로컬변수를 활용하여 Firestore Query를 날립니다. 이 때 두번 날리는데요. 예를 들어 1월 16일을 선택했을 경우, 1)1월 16일 이후의 이벤트를 모두 불러오고 2)1월 17일 이전의 이벤트를 모두 불러옵니다.

  3. customFunction을 이용, 1)과 2)의 교집합을 구합니다.

  4. 3번에서 나온 결과물을 리스트에 표시합니다.

image.png

 

그럼에도 구현이 조금 어려울 수 있는데요.

괜찮으시다면, 이메일 알려주시면 이전에 구현한 해당 프로젝트를 공유해 드리도록 하겠습니다.

감사합니다.

 

 

 

최현준님의 프로필 이미지
최현준
질문자

답변 갑사합니다!!

0c9h1j5@gmail.com 으로 부탁 드립니다!!

 

제가 꼭 만들어보고 싶은게 있어서요

피어낫프로덕님의 프로필 이미지
피어낫프로덕
지식공유자

네 방금 공유 드렸습니다 ㅎㅎ

 

복제한 프로젝트라서 여러 에러가 있을 수 있지만,

날짜 선택시 컨텐츠가 나오는 것은 참고하실 수 있을 거에요.

화이팅입니다!

 

0

인프런 AI 인턴님의 프로필 이미지

안녕하세요, 인프런 AI 인턴입니다. 최현준님, 질문 주셔서 감사합니다.

질문하신 내용은 날짜별로 클릭하면 해당 날짜에 속한 시간대별로 등록된 유저의 정보를 리스트뷰로 보여주고 싶다는 것이군요. 이를 구현하기 위해서는 데이터베이스와 UI의 상호작용을 적절하게 설정해야 합니다.

구현 방법

  1. 데이터베이스 구성:

    • 먼저, Firebase Firestore와 같은 서비스에 각 날짜와 시간마다 유저가 등록한 정보를 저장해 두어야 합니다. 각 항목은 날짜와 시간 정보를 포함하여 저장되어야 합니다.
  2. UI 구성:

    • 날짜를 선택할 수 있는 캘린더 위젯이 필요하며, 사용자가 날짜를 선택하면 선택된 날짜의 데이터가 필터링되어 시간별로 표시될 수 있도록 해야 합니다.
    • ListView를 사용하여 각 시간대별로 데이터를 보여줄 수 있습니다.
  3. 데이터 필터링 및 바인딩:

    • 사용자가 날짜를 선택하면, Firestore에서 해당 날짜에 해당하는 문서를 쿼리하여 가져옵니다.
    • 가져온 데이터를 시간별로 나누어 ListView로 바인딩하여 화면에 표시합니다.

참고 링크

이와 관련된 질문과 답변이 유사한 경우를 위해 참고할 만한 자료나 게시물은 현재 제가 찾을 수 없었습니다. 그러나, 이 방법을 통해 구현을 진행해 보시면 좋겠습니다.

추천자료:
- Firestore as a Database - Firestore CRUD operations 및 쿼리 예제를 살펴보세요.
- Flutter Calendar Widget - 날짜 선택을 위한 Flutter 패키지 사용 예제.

저는 질문자님의 이해를 돕고자 전문가의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.