Javascript 返回对象而不是proto,useffect()
我试图访问存储在firestore中的用户对象内的数据,但console.loguser和console.loguser通常都会返回_proto__;:对象,这是一个承诺,而不是实际的对象Javascript 返回对象而不是proto,useffect(),javascript,reactjs,google-cloud-firestore,react-hooks,Javascript,Reactjs,Google Cloud Firestore,React Hooks,我试图访问存储在firestore中的用户对象内的数据,但console.loguser和console.loguser通常都会返回_proto__;:对象,这是一个承诺,而不是实际的对象 function StorefrontPage(props) { const auth = useAuth(); const router = useRouter(); const [user, setUser] = useState({}); const uid = auth.user &
function StorefrontPage(props) {
const auth = useAuth();
const router = useRouter();
const [user, setUser] = useState({});
const uid = auth.user && auth.user.uid;
useEffect(() => {
uid && getUser(uid).then(currentUser => {
setUser(currentUser);
})
console.log(user);
}, [])
console.log(user);
我第一次运行它时,它会返回我想要的对象,但随后的刷新和页面更改会将console.log变成proto对象或promise。我原以为将它包装在useffect钩子中可以解决这个问题,但事实并非如此。如何确保它总是返回用户对象而不是承诺
作为参考,getUser函数是:
export function getUser(uid) {
return firestore.collection('users').doc(uid).get().then(user => {
return user.data();
})
}