【问题标题】:getting data from FireStore: works sometimes, doesn't other times从 FireStore 获取数据:有时有效,有时无效
【发布时间】:2020-11-12 18:40:39
【问题描述】:

我有以下 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 并且会使所有其他代码崩溃。我的功能是否有问题 - 为什么它有时会起作用而其他时候不起作用,我怎样才能让它始终如一地工作?

我注意到,当我打开已登录的网络应用程序时,此错误更频繁地发生。当我进入隐身模式时,似乎不会发生此错误。有没有办法检查返回的数据是否未定义,如果是,重试代码?或者更好的方式来编写这个函数?

【问题讨论】:

    标签: javascript asynchronous google-cloud-firestore


    【解决方案1】:

    据记载,当请求的文档不存在时,data() 将返回 undefined。合乎逻辑的结论是该文件根本不存在。我们不知道为什么会这样,因为我们看不到 uid 的值,并且看到它肯定匹配或不匹配用户集合中的文档。

    如果您想更清楚地表明文档存在或不存在,您可以检查快照上的exists 标志。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-02-11
      • 2012-08-02
      • 2015-03-31
      • 1970-01-01
      • 1970-01-01
      • 2023-03-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多