You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React中Firestore读取userRole报错:Cannot read properties of undefined

问题描述

我尝试从Firebase Firestore的companies/{currentCompany}/users/{currentUserUID}路径下获取userRole字段,通过users集合里的companyCode做关联(这部分用console.log验证功能正常)。但第二个useEffect里总是报错:Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'userRole'),哪怕把请求里的数据换成硬编码值,错误还是一样。

相关代码
const [currentUserUID, setCurrentUserUID] = useState(null)
const [currentUserCompanyCode, setCurrentUserCompanyCode] = useState(null)
const [currentUserCompanyRole, setCurrentUserCompanyCodeRole] = useState(null)
    
useEffect(() => {
  if (currentUserUID != null) {
    const docRefUser = doc(projectDb, "users", currentUserUID);
    getDoc (docRefUser).then((doc) => {
      setCurrentUserCompanyCode(doc.data().companyCode)
    })
  }
}, [currentUserUID]);

useEffect(() => {
  if (currentUserCompanyCode != null && currentUserUID != null) {
    const docRefCompany = doc(projectDb, "companies", currentUserCompanyCode, "users", currentUserUID);
    getDoc (docRefCompany).then((doc) => {
      setCurrentUserCompanyCodeRole(doc.data().userRole)
    })
  }
}, [currentUserCompanyCode, currentUserUID]);

console.log(currentUserCompanyCode)
console.log(currentUserCompanyRole)
相关截图
  • 截图1:展示Firestore数据库结构,companies集合下的文档包含users子集合
  • 截图2:展示users集合中的用户文档,存在companyCode字段
  • 截图3:展示浏览器控制台错误信息,显示报错内容Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'userRole')

内容的提问来源于stack exchange,提问作者Bas Mienis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 05:10:27