【发布时间】:2019-07-12 13:52:54
【问题描述】:
我实际上正在开发一个小型反应应用程序,我有一个动作来检查当前用户是否存在于基于 uid 的 firestore 集合“用户”中,然后获取用户的个人资料信息。 它实际上可以执行此操作,但我无法在我的配置文件组件中使用它来显示它!
这是动作文件:
import 'firebase/firestore'
import firebase from 'firebase/app'
const getUser =()=>{
return (dispatch)=>{
firebase.auth().onAuthStateChanged(firebaseUser => {
if(firebaseUser){
firebase.firestore().collection("users").doc(firebaseUser.uid).get().then( doc => {
const { displayName } = doc.data()
//it works and it shows me on console the name i want
console.log("display name in action: ",displayName)
const currentUser = {
uid: firebaseUser.uid,
displayName
}
dispatch({
type:'GET_USER',
currentUser,
})
})
}
})
}
}
export default getUser ;
当我尝试在我的配置文件中进行控制台记录时,它显示此错误“typeError: undefined is not an object (evalating 'this.props.getUser().currentUser')”:
console.log("getting current user: ", this.props.getUser().currentUser )
我希望向我显示 displayName,但我得到了那个错误!
【问题讨论】:
-
试试
console.log(this.props)。也许一开始它不在那里,然后它在那里 -
@azium 其实是对的,一开始它显示我未定义,然后它显示数据
标签: reactjs firebase redux google-cloud-firestore firebase-authentication