异步等待 Firestore 用户 ID

Posted

技术标签:

【中文标题】异步等待 Firestore 用户 ID【英文标题】:Async Await firestore user id 【发布时间】:2019-04-20 13:38:58 【问题描述】:

我在一个数组对象中有一组 Firestore 用户 ID。我怎样才能循环 通过 userid 数组并从 firestore 数据库中获取每个用户的用户名。我如何使用 async await Java Script ES8 来实现这一点

常量数组 =["id1","id2"]

【问题讨论】:

【参考方案1】:

也许这会奏效。

const array=["id1","id2",...]//array of ids 
async function fetchData()
  array.map(id=>
    await fetch(<call to database using the id).then(res=>//OK)
      .catch(err=> not ok)
  )

Async await 是使用此类异步函数的一种更简洁的方式。

【讨论】:

这不会编译,因为您在非异步函数中使用 await(您作为 lambda 传递给 map 的函数)。 @Thakur karthik 你认为我们如何做到这一点?而且我们不是必须在每次 Firestore 数据库调用后都返回一个 Promise,否则数据将永远无法解析【参考方案2】:

您可以在循环中使用 async/await,如下所示。

const array=["id1","id2",...]


fetchData = () => 
  array.forEach(async (id) => 
    try 
      await res = fetch(id)
      // Do something with your res 
     catch (err) 
      console.log(err)
    
  )

【讨论】:

以上是关于异步等待 Firestore 用户 ID的主要内容,如果未能解决你的问题,请参考以下文章

Firebase Firestore get() 异步/等待

异步 new Vue() 等待初始认证

Firestore 的异步功能不会加载我的数据

异步/等待上传任务

Cloud Firestore 在流中等待未来 - 使用用户 ID 将用户加入文档

DispatchGroup 等待 Firestore 查询完成