• 카테고리

    질문 & 답변
  • 세부 분야

    모바일 앱 개발

  • 해결 여부

    미해결

null safety 적용 후 feed_widget.dart 내 widget.document['likedUsers'] 문의드립니다.

21.10.13 01:46 작성 조회수 465

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
 
안녕하세요. 강의 너무 잘 봤습니다.
 
최신 flutter버전으로 업그레이드(null safety적용) 하는 과정에서 feed_widget.dart파일에서 막혀서 문의드립니다.
52라인 부근에서
widget.document['likedUsers']?.contains(widget.user.email) ?? false ? GestureDetector( onTap: _unlike, child: Icon( Icons.favorite, color: Colors.red, )) : GestureDetector( onTap: _like, child: Icon(Icons.favorite_border)),
 
widget.document['likedUsers']? <-----이부분에서 오류가 발생 되는것 같은데 해당 document의 likedUsers필드 자체가 존재하지 않아 오류가 발생됩니다. (오류 메시지 : Bad state: field does not exist within the DocumentSnapshotPlatform)
최신플러터로 업데이트 이후 발생되네요.. null이라서 그런거같은데 ... 스택오버플로를 다 뒤져봐도 원하는 해답을 찾을수가 없더군요..
 
널을 피해갈 방법이 없을까요?

답변 1

답변을 작성해보세요.

0

현묵님의 프로필

현묵

질문자

2021.10.13

자문 자답입니다.

임시방편으로

(widget.documents.data().toString().contains('likedUsers') ? widget.documents.get('likedUsers') : '').contains(widget.user.email) ?? false

이렇게 수정하였습니다.

 

네. 최신 버전에서는 데이터를 읽어오는 코드가 변경된 것 때문에 그런 것 같습니다.
https://firebase.flutter.dev/docs/firestore/usage#one-time-read