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

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

vadain2000님의 프로필 이미지
vadain2000

작성한 질문수

Flutter로 SNS 앱 만들기

댓글 정보 가져오기

11댓글화면_댓글 정보 가져오기에서 콘솔에 commentList못찍고 있어요

작성

·

34

0

16:09

//변환해서 가져오기
List<CommentModel> commentModel = await Future.wait(snapshot.docs.map(
  (e) async {
    Map<String, dynamic> data = e.data();
    logger.d(data);
    DocumentReference<Map<String, dynamic>> writerDocRef = data['writer'];
    logger.d(writerDocRef);

 

데이터를 가져오질 못해서 콘솔에 찍어봤습니다
logger.d(data); 잘 찍고 있으나

logger.d(writerDocRef); 이거는 못찍고 있어요

답변 1

0

안녕하세요, 인프런 AI 인턴입니다. vadain2000님.

현재 콘솔에 writerDocRef 데이터가 표시되지 않는 문제는 DocumentReference를 사용하는 과정에서 발생할 수 있는 일반적인 상황입니다. 이 문제의 원인과 해결책에 대해 설명드리겠습니다.

문제 분석

  1. 데이터 타입: data['writer']DocumentReference로 예상되지만, 실질적으로 올바르게 변환되지 않은 경우일 수 있습니다. 이는 데이터 구조나 Firestore에서의 데이터 형태에 따라 달라질 수 있습니다.

  2. Null 값: Firestore에서 writer 필드가 없거나 null일 경우에도 logger.d(writerDocRef)가 찍히지 않을 수 있습니다.

해결 방법

  • 데이터 확인: Firestore 콘솔을 통해 실제 데이터베이스에서 writer 필드가 존재하는지, 올바른 DocumentReference 형태인지 확인해보세요.
  • 에러 핸들링 추가: 데이터를 가져올 때 예외 처리를 추가하여 문제의 구체적인 원인을 파악할 수 있습니다. 예를 들어, 데이터가 null인지 체크해보세요.
Map<String, dynamic> data = e.data();
if (data.containsKey('writer')) {
  DocumentReference<Map<String, dynamic>> writerDocRef = data['writer'];
  logger.d(writerDocRef);
} else {
  logger.e("Writer field does not exist in document data");
}

이 접근 방식을 통해 writer 필드가 올바르게 존재하고 있는지 검증할 수 있으며, 문제를 보다 명확하게 파악할 수 있을 것입니다.

아래의 유사한 질문을 참고하시면 도움이 될 수 있습니다:
- Firebase StreamBuilder 사용은 왜 안 하나요? - 콘솔 로그 및 데이터 핸들링에 대한 추가적인 팁을 확인할 수 있습니다.

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

vadain2000님의 프로필 이미지
vadain2000
질문자

1.PNG.webp

 

await writerDocRef.get().then((value) => value.data()!);

이부분에 writerDocRef 에러발생되고 있어요
변환이 문제인가요

vadain2000님의 프로필 이미지
vadain2000

작성한 질문수

질문하기