
React + Firebase로 개인 프로젝트를 하던 중, 경로를 수정하면서 이상한 에러를 마주했다. 코드는 아무 문제 없어 보였지만 Firebase 문서를 생성도 못하고, 불러오지도 못했다.
그 이유는 바로… Firebase 문서 경로 설정 실수 때문이었다.
나는 사용자의 하루 목표(push-up goal)를 저장하기 위해 아래와 같은 구조를 생각했다.
users
└─ {uid}
└─ goal
그래서 문서를 지정할 때 이렇게 작성했다:
const goalRef = doc(db, "users", user.uid, "goal");
하지만 실행 시 다음과 같은 에러가 발생했다:
FirebaseError: Invalid document reference.
Document references must have an even number of segments, but users/W5Blp99JxeQ5BET7r5t8eMLoZIC3/goal has 3
Firebase에서 문서(Document) 경로는 항상 짝수 개의 세그먼트로 이루어져야 한다.
컬렉션 → 문서 → 컬렉션 → 문서 → …
예: "users/{uid}/goal/{docId}"
그런데 위 코드에서는 "users/{uid}/goal"만 지정했다.
즉, "goal"를 서브컬렉션이 아닌 문서로 잘못 해석되도록 만들었다.
❌ "users/uid/goal" → 세그먼트 3개 → 오류 발생
✅ "users/uid/goal/default" → 세그먼트 4개 → 정상 작동
정상적인 문서 경로를 지정하려면 "goal" 아래에 구체적인 문서 ID를 명시해야 한다. 예를 들어 "default"라는 고정 문서명을 사용했다.
const goalRef = doc(db, "users", user.uid, "goal", "default");
그렇게 수정하고 나서야 setDoc, getDoc 모두 정상적으로 동작했다.