Javascript 从FireStore获取数据:有时有效,但不';其他时间

Javascript 从FireStore获取数据:有时有效,但不';其他时间,javascript,asynchronous,google-cloud-firestore,Javascript,Asynchronous,Google Cloud Firestore,我有以下firestore函数来获取用户数据: export function getUser(uid) { return firestore.collection('users').doc(uid).get().then(user => { console.log({x:user.data(),uid}); return user.data(); }) } 令人费解的是,有时候这个函数会工作得非常好,console.log({x:user.data()})会返回

我有以下firestore函数来获取用户数据:

export function getUser(uid) {
  return firestore.collection('users').doc(uid).get().then(user => {
    console.log({x:user.data(),uid});
    return user.data();
  })
}
令人费解的是,有时候这个函数会工作得非常好,
console.log({x:user.data()})
会返回我正在寻找的对象。但它通常会返回
x:undefined
,并使所有其他代码崩溃。我的功能有什么问题吗?为什么它有时工作,有时不工作,我怎样才能让它一直工作

我注意到,当我打开已登录的web应用程序时,此错误会更频繁地发生。当我隐姓埋名的时候似乎不会发生。是否有方法检查返回的数据是否未定义,如果未定义,是否重试代码?还是编写此函数的更好方法?

当请求的文档不存在时,将返回未定义的文档。合乎逻辑的结论是,该文件根本不存在。我们不知道这是为什么,因为我们看不到
uid
的值,也看不到它是否与您的用户集合中的文档匹配

如果您想要一个更清晰的信号,表明文档存在或不存在,可以检查快照上的标志