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 콘솔에서 직접 설정할 수 있다.

  1. Firebase 콘솔로 이동  : https://console.firebase.google.com/
  2. → Firestore Database → Indexes 탭으로 이동
  3. "Create Index" 버튼 클릭

 

 

내 소스기준으로 

  1. Collection ID: orders 
  2. 필드 추가:
    • totalOrderStatus → Ascending
    • orderTime → Descending
  3. "Create" 버튼 클릭

 

728x90