inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Flutter로 SNS 앱 만들기

TabBarView 사용

섹션 6) 사용자 정보, 게시글정보를 Model 클래스로 관리 영상 오류

해결된 질문

265

이정찬

작성한 질문수 2

0

안녕하세요

섹션 6, 사용자 정보, 게시글정보를 Model 클래스로 관리 영상에서

영상 따라서 마지막에 삭제할 것 삭제하고 다시 게시물 등록해서

firestore과 storage에 정상적으로 데이터 들어가나 해봤는데

storage에는 feeds 폴더 안에 데이터가 들어오는데

firestore에는 users 컬렉션만있고 feeds 컬렉션이 안뜹니다..질문사진.png비슷한 질문 올리신 분 계셔서 참고해봤는데 코드에는 이상이 없는 것 같아서 질문합니다.

flutter android firebase dart

답변 3

0

DEV MOO

・회원가입시, firestore 의 users 컬렉션에 유저 정보를 저장할 때, 로직을 아래와 같이 작성하셨습니다.
(auth_repository.dart 의 80행 부터 입니다)

await firebaseFirestore.collection('users').doc(uid).set(
          {
            'uid': uid,
            'email': email,
            'name': name,
            'profileImage': downloadURL,
            'feedCount': 0,
            'likes': [],
            'followers': [],
            'followings': [],  // 키 값을 followings 로 지정하셨기 때문에 users 컬렉션의 문서에도 키 값이 follwings 로 저장되었을 겁니다(저는 강의에서 follwing 으로 지정했습니다).
          }
      );

・feed_repository.dart 에서 feed 등록시의 로직을 아래와 같이 작성하셨습니다(44행 부터 입니다)

// 현재 접속중인 유저의 정보를 firestore 문서에서 snapshot 으로 가져와서
DocumentSnapshot<Map<String, dynamic>> userSnapshot = await userDocRef.get();
// UserModel 클래스의 fromMap 함수를 호출하여 UserModel 객체를 생성합니다.
UserModel userModel =UserModel.fromMap(userSnapshot.data()!);

・작성하신 UserModel 클래스의 fromMap 함수의 로직은 아래와 같습니다.
(user_model.dart 파일의 49행 부터 입니다)

  factory UserModel.fromMap(Map<String, dynamic> map){
    return UserModel(
      uid: map['uid'],
      name: map['name'],
      email: map['email'],
      profileImage: map['profileImage'],
      feedCount: map['feedCount'],
      followers: List<String>.from(map['followers']),
      // firestore 문서에는 키 값이 followings 로 저장되어 있기 때문에
      // 아래 코드와 같이 following 로는 데이터를 가져올 수가 없습니다.
      following: List<String>.from(map['following']),
      likes: List<String>.from(map['likes']),
    );
  }

해결 방법으로는

1. 모든 소스 파일에서 following 로 작성하신 코드를 followings 로 수정하시거나
2. auth_repository.dart 의 회원가입시 로직에서 followings 으로 작성하신 것을 following 로 수정하시면 됩니다.

지금 검색해보니 followings 가 올바른 표현인 것 같습니다만, 앞으로의 강의에서 지속적으로 following 이라는 표현을 사용하게 될 것이므로 불편하시더라도 2번의 방법을 추천드립니다.

0

이정찬

감사합니다!

0

이정찬

https://github.com/jcleeeee/instagram_clone

0

이정찬

현재 막힌 부분까지의 소스코드입니다

0

인프런 AI 인턴

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

이정찬 님, Firestore에 feeds 컬렉션이 보이지 않는 문제에 대해 질문해주셨군요. 이와 관련된 유사한 질문으로 사용자 정보, 게시글 정보를 Model 클래스로 관리 강의 관련 질문이 있습니다. 해당 질문에서는 사용자가 강의 내용대로 코드를 작성했음에도 불구하고 Firestore database에 데이터가 올라가지 않는 상황을 설명하고 있습니다.

DEV MOO 강사님께서 제공하신 답변에는 오타가 원인으로, creatAtcreateAt으로 수정해야 한다는 해결책이 제시되어 있습니다. 이러한 오타나 다른 세부적인 문제들이 feeds 컬렉션이 나타나지 않는 원인일 수 있습니다.

추천 드리는 단계는 다음과 같습니다:
1. 모델 클래스 및 관련 코드에 오타가 없는지 철저히 확인합니다.
2. 코드의 문서를 저장하고 있는 Firebase 함수에 문제가 없는지 확인합니다.
3. Firestore 규칙이 적절하게 설정되어 있는지 확인합니다.

이미 검토했다면, 조금 더 구체적인 정보를 제공하셔서 고수준의 지원을 받는 것이 좋을 수 있습니다. 코드 일부가 정상적으로 실행되고 있음에도 불구하고 문제가 지속된다면, 코드 자체를 다시 검토할 필요도 있을 수 있습니다.

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

실수로 파이어프로젝트를 삭제하여 다시 살렸는데 profile screen이 에러입니다

0

153

1

파이어베이스 연동 중 Auth 및 ImagePicker 오류 발생, 도움 요청드립니다.

0

145

2

파이어베이스에서 실수로 강의프로젝트를 실수로 삭제하였습니다.도와주세요

0

170

2

파이어베이스 스토리지 설정에 프로젝트 업그레이드 라고 뜨는데 어떻게 하면됩니까

0

219

1

이거는 왜그렇죠

0

149

1

셋팅에 문제가생겼네요

0

142

2

마치면서 에러가 댓글가져오기와 좋아요 리스트 가져오기 에러

0

109

1

섹션15페이징기능_4프로필 화면에 페이징 적용

0

98

1

섹션15페이징기능_3좋아요 목록 화면에 페이징 적용

0

184

1

섹션14페이징기능_1게시글 목록 화면에 페이징 적용 feed_repository.dart에러

0

103

1

11셕션에서 좋아요.강의코드에서 좋아요 업데이트 문제 제대로 수정된건가요

0

122

1

12댓글화면_3댓글정보 가져오기

0

224

2

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

0

81

1

섹션11 좋아요 목록화면에서 콘솔에서 FeedModel 데이터를 못가지고 있어요

0

89

1

섹션11 좋아요.누른 게시글 정보를 화면에표시에서 Exception 왜 발생합니까

0

146

0

Storage사용..?

0

903

2

10 게시물 화면에서 조금헷갈려서요

0

132

2

게시글 이미지 슬라이드 기능추가 carouselslider에러가 났습니다

0

144

1

섹션8 게시글 정보 화면에 표시

0

109

1

섹션8 게시글 정보가져오기

0

114

1

섹션8 게시글 정보 가져오기

0

90

1

섹션8 게시글 정보 가져오기 feedModel를 못받아오는것 같습니다.

0

123

1

메인화면에서 뒤로가기 눌렀을때 어플종료관련 건

0

182

1

섹션8 게시글 정보가져오기

0

161

2