해결된 질문
작성
·
238
답변 1
0
안녕하세요.
확인 결과, firebase 패키지의 버전이 업데이트 되면서 발생한 문제였습니다.
(제가 강의에서 사용한 firebase 패키지 버전은 아래와 같습니다)
firebase_core: 2.15.0
firebase_auth: 4.7.2
firebase_storage: 11.2.5
cloud_firestore: 4.8.4
기존 방법에서는 where('uid', isEqualToL: uid)
에서 변수 uid 에 null 이 대입되어 있으면
where 함수를 사용하지 않은 것과 동일한 동작을 해서 모든 유저의 피드를 가져올 수 있었는데
firebase 패키지가 업데이트 되면서 변수 uid 에 null 이 대입되면
feeds 컬렉션에서 정말로 uid 필드값이 null 인 게시글을 검색하다보니 아무 결과가 출력되지 않았습니다.
해결 방법으로는 이미 작성하신 코드를 사용하셔도 되고, 작성하신 코드에서 반복되는 부분을 줄여서
아래 같이 작성할 수도 있습니다.
Future<List<FeedModel>> getFeedList({
String? uid,
}) async {
try {
// 전체 피드 검색
Query<Map<String, dynamic>> query = await firebaseFirestore
.collection('feeds')
//.where('uid', isEqualTo: uid) // firebase 업데이트로 인해 사용 불가
.orderBy('createAt', descending: true)
.limit(feedLength);
// uid 가 null 이 아닐 경우(특정 유저의 피드를 가져올 경우) 조건 추가
if (uid != null) {
query = query.where('uid', isEqualTo: uid);
}
제가 패키지를 사용할 때 터미널에서 flutter pub add 명령어를 사용해서 최신버전을 사용한 결과이군요..!
답변 감사드립니다!