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
相关产品推荐
相关产品推荐

