Javascript 返回对象而不是proto,useffect()

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 &

我试图访问存储在firestore中的用户对象内的数据,但console.loguser和console.loguser通常都会返回_proto__;:对象,这是一个承诺,而不是实际的对象

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();
  })
}