React Native集成Firebase报错:Collection references must have an odd number of segments
解决Firebase报错:Collection references must have an odd number of segments
问题原因
你用collection()方法创建了路径为users/{user.uid}的引用,但这个路径是文档路径(偶数段:users是集合,user.uid是文档ID,共2段),而collection()要求路径必须是集合路径(奇数段,比如users是1段,users/{uid}/tasks是3段),因此触发报错。你的实际需求是获取单个用户文档,应该用doc()方法而非collection()。
修正后的代码
const getData = async () => { console.log(user.uid + " 🚧🚧🚧") // 用doc()创建文档引用,路径为users/{user.uid} const docRef = doc(db, "users", user.uid) const taskSnapshot = await getDoc(docRef) // 检查文档是否存在并输出数据 if (taskSnapshot.exists()) { console.log("文档数据:", taskSnapshot.data()) } else { console.log("该用户文档不存在") } } getData()
关键注意点
- 明确
collection()和doc()的使用边界:collection()用于指向集合(路径段数为奇数)doc()用于指向单个文档(路径段数为偶数)
- 提前校验
user.uid有效性,避免空值导致路径错误:if (!user?.uid) { console.log("用户未登录或UID无效") return }
内容的提问来源于stack exchange,提问作者owdji
相关产品推荐
相关产品推荐

