IT기타
@firebase/firestore: "Firestore (11.3.1): Uncaught Error in snapshot listener
emilyyoo
2025. 2. 19. 11:43
728x90
***상황
firebase/firestore 사용해서 프로젝트 중인데 데이터를 불러오는 부분에서 아래와 같은 식의 에러가 나왔다.
Console Error
@firebase/firestore: "Firestore (11.3.1): Uncaught Error in snapshot listener:" "FirebaseError: [code=failed-precondition]: The query requires an index. You can create it here: https://console.firebase.google.com/v1/~~~~~~~~=
***에러원인 분석.
소스에서 orderBy 를 썼을 경우 발생한다.
나의 경우 아래와 같이 썼었다.
const ordersQuery = query(
collection(db, "orders"),
where("totalOrderStatus", "==", "pending"),
orderBy("orderTime", "desc"),
)
const unsubscribe = onSnapshot(ordersQuery, (snapshot) => {
const ordersData = snapshot.docs.map((doc) => {
const data = doc.data()
...............
...............
이때, Firestore에서 복합 인덱스가 필요하다.
위의 예제기준으로 Firestore는
where("totalOrderStatus", "==", "pending") 와
orderBy("orderTime", "desc") 를 동시에 사용하려면 인덱스를 생성해야 한다.
***해결
Firebase 콘솔에서 직접 설정할 수 있다.
- Firebase 콘솔로 이동 : https://console.firebase.google.com/
- → Firestore Database → Indexes 탭으로 이동
- "Create Index" 버튼 클릭
내 소스기준으로
- Collection ID: orders
- 필드 추가:
- totalOrderStatus → Ascending
- orderTime → Descending
- "Create" 버튼 클릭
728x90