728x90
아래와 같이 Firestore의 where 절을 이용해 쿼리를 날릴 때,
응답이 없을 때가 있다.
QuerySnapshot querySnapshot = await notificationReference
.where("userId", isEqualTo: authClient.currentUser!.uid)
.where("isValid", isEqualTo: false)
.where("createdAt",
isGreaterThanOrEqualTo: Timestamp.fromDate(
DateTime.now().subtract(const Duration(days: 1))))
.get();
보통 이렇게 firestore 응답이 없으면 exception인 경우가 많은데,
이 경우에는 index가 없어서 그렇다
디버거를 켜서 확인해 보면 다음과 같은 안내가 뜬다.
예외가 발생했습니다.
FirebaseException ([cloud_firestore/failed-precondition] The query requires an index. You can create it here:
LINK TO FIREBASE CONSOLE
LINK TO FIREBASE CONSOLE
해당 링크로 가서 create index로 들어간 후 쿼리에 사용되는 필드로 구성되는 인덱스를 새로 만들면 해결 된다.

인덱스를 생성하면 만드는데 시간이 좀 걸린다.
728x90
'IT' 카테고리의 다른 글
온라인 검색 키워드 영향력 파악하기 - 네이버, 구글, 키워드마스터 (0) | 2023.01.24 |
---|---|
[Git] Git-flow 전략 사용하기 (0) | 2023.01.17 |
[Firebase] 파이썬으로 Firestore 데이터 다루기 (0) | 2023.01.16 |
[github] 로컬 프로젝트 github로 올려 관리하기 (0) | 2023.01.14 |
[Flutter 앱 개발하기] TextField 에 숫자만 입력 받기 (0) | 2023.01.11 |