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

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

vadain2000님의 프로필 이미지

작성한 질문수

Flutter로 SNS 앱 만들기

좋아요 기능 처리 결과를 좋아요 목록 화면에 반영

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

작성

·

82

·

수정됨

0

11셕션에서 좋아요.강의코드에서 좋아요 업데이트문제발생.

사용자 유저가 feedScreen에서좋아요 버튼을 누르고,

좋아요 바 버튼을 누루면 좋아요누른 게시물이 표시되나,

앱을 종료하고, 다시 접속해서 좋아요 바 버튼을 누르면 좋아요게시물이 재대로 찍히지 않습니다.

그래서, 다음 같이 수정하니 그런문제가 사라졌습니다

제가 올바르게 수정한건가요

 

}) async {
  try {
    // 강의코드 에러
    //Map<String, dynamic> userMapData = await firebaseFirestore
    //    .collection('users')
    //    .doc(uid)
    //    .get()
    //    .then((value) => value.data()!);

    //userMapData['likes'];// 다이나믹으로 반환됨
    //List<String> likes = List<String>.from(
    //    userMapData['Likes']); //문자열로 반환받은 List

    // 수정코드
    DocumentReference<Map<String, dynamic>> userMapDataDocRef =
    firebaseFirestore.collection('users').doc(uid);

    DocumentSnapshot<Map<String, dynamic>> userMapDataSnapshot =
    await userMapDataDocRef.get();
    List<String> likes =
    List<String>.from(userMapDataSnapshot.data()!['likes']);
    // 수정코드끝

답변 1

0

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

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

vadain2000님께서 공유해 주신 코드를 봤을 때, 수정하신 부분이 문제를 해결하는 데 도움이 되었을 가능성이 높습니다. 기본적으로, Firestore에서 데이터를 올바르게 받아오고 처리하는 과정에서 발생할 수 있는 타입 오류를 해결하신 것으로 보입니다. userMapData['likes']를 동적으로 받는 것이 아닌, userMapDataSnapshot.data()!['likes']를 통해 명확하게 리스트로 변환하셨습니다. 이는 타입 안정성과 데이터 일관성을 보장하는 데에 유리합니다.

만약 수정 후 여전히 문제가 발생하지 않는다면, 수정을 통해 문제를 제대로 해결하셨다고 볼 수 있습니다. 하지만 추가적인 테스트를 거쳐서 모든 경우에 잘 동작하는지 확인하시는 것이 좋습니다.

문제 해결에 성공하셨길 바랍니다! 👨‍💻

참고하신 이미지가 있다면 Spring Data JPA - Reference Documentation 링크를 통해 확인해 보세요.