从 firestore 获取数据时使用 async forEach 循环

2023-11-21

我的 firestore 数据有点像这样:

"Support": { "userid":"abcdxyz", "message": "hello" }

我正在使用 nodejs 来获取我的数据,我还想显示发送此消息的人的电子邮件地址和姓名。所以我正在使用以下函数:

database.collection("support").get().then(async function (collections) {
var data = [];
console.log("data collected");
collections.forEach(async function (collection) {
    var temp = {};
    var collectionData = collection.data()
    var userInfo = await getUserDetails(collectionData.userId)
    temp.name = userInfo.name
    temp.supportMessage = collectionData.supportMessage
    data.push(temp)
    console.log("data pushed")
});
    console.log("data posted")
    return res.status(200).end(JSON.stringify({ status: 200, message: "Support Message fetched successfully.", data: data }))
}).catch(error => {
    return res.status(500).end(JSON.stringify({ status: 500, message: "Error: " + error }))
});

这里日志的顺序如下:收集数据、发布数据、推送数据

我想要这样的顺序:收集数据、推送数据(x 次)、发布数据


我在@estus评论的帮助下解决了我的答案。

信用:@estus

var data = [];
var tempCollection = [];
collections.forEach(collection => {
    tempCollection.push(collection.data());
});
for (collection of tempCollection) {
    var temp = {};
    var userInfo = await getUserDetails(collection.userId)
    temp.name = userInfo.name
    temp.supportMessage = collection.supportMessage
    data.push(temp)
}

它非常轻松地解决了我的问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 firestore 获取数据时使用 async forEach 循环 的相关文章

随机推荐

  • 子进程在父进程之后启动

    我有一个简单的代码来测试fork 功能 include
  • 如何使用 Java 以编程方式强制停止 Android 应用程序?

    如何使用 Java 强制停止应用程序 我正在尝试构建一个内存清理器 可以帮助清理后台进程 我知道有一种方法可以杀死应用程序的进程 但是当您进入正在运行的列表时 即使您杀死了它 该应用程序仍然存在 我尝试过很多类似的内存清理应用程序 只有其中
  • Python 3.x 的机械化

    有什么方法可以将 Mechanize 与 Python 3 x 一起使用吗 或者有什么可以在 Python 3 x 中工作的替代品吗 我已经搜索了几个小时 但没有找到任何东西 我正在寻找如何使用 Python 登录该网站的方法 但该网站使用
  • 是否可以查看Class文件的字节码? [复制]

    这个问题在这里已经有答案了 可能的重复 有没有java类文件 字节码编辑器来编辑指令 Java源代码被编译成字节码 实际上是在类文件中 是否可以查看已编译类的字节码 如果可以的话可以编辑吗 有没有可用的 eclipse 插件 是的 您可以使
  • 单个函数的两个可变参数模板?

    在 C 11 中 单个函数是否可以有两个可变参数模板 如果没有 有没有一个技巧可以写这样的东西 template
  • 使用 AVX512 生成掩模的 BMI

    我受到这个链接的启发https www sigarch org simd instructions considered harmful 了解 AVX512 的性能 我的想法是可以使用 AVX512 掩码操作删除循环后的清理循环 这是我正在
  • 使用 AspNetSqlMembershipProvider 的站点出现“SQLExpress 数据库文件自动创建错误”,但连接字符串指向 SQL Server 2005

    我有一个ASP NET v2 0网站 不是 Web 应用程序 其根目录是公共的 但 Admin 子目录需要身份验证 有关设置的所有内容都非常通用 我使用了根 web config 中定义的连接字符串和标准AspNetSqlMembershi
  • 递增 Integer 变量不会影响引用同一对象的另一个变量

    我一直理解静态变量在被引用时共享一个实例 我想对此进行测试 但结果与我的预期不同 static Integer counter 0 static Integer test counter public static void main St
  • 算法:优化“平衡括号”

    有人向我提出了以下问题 给定字符串 中的 N 个不同的左大括号和右大括号 检查该字符串是否有匹配的大括号 如果大括号匹配则返回 true 否则返回 false 这是我想出的答案 function braceeql braces var le
  • 如何以编程方式“重新启动”Android应用程序[重复]

    这个问题在这里已经有答案了 我正在尝试在我的应用程序中创建 注销 功能 基本上 通过注销 应用程序数据应该被清除 我想做的是注销后 应用程序应该重新启动 以便可以再次输入凭据等 我遇到的问题是 在用户单击 注销 时 应用程序已经有 3 4
  • AWS SQS FIFO - 如何一次获取超过 10 条消息?

    目前我们想要拉下一个整个 FIFO 队列 并处理内容 如果有任何问题 将消息释放回队列中 问题是 目前 AWS 只给我们 10 条消息 并且不会再给我们 10 条消息 这是在 SQS 中获取批量消息的方式 多个 10 条最大消息请求 直到我
  • 服务器推送数百万并发连接

    我正在构建一个分布式系统 该系统可能由数百万个客户端组成 这些客户端都需要保持开放 最好是 HTTP 连接以等待来自服务器 在其他地方运行 的命令 消息 命令的负载不会很高 可能是一条消息 秒 1000 个客户端 这意味着 1000 条消息
  • 什么是“结构黑客”和“类型/非类型隐藏”?

    我在参考参数 在范围内查找名称会找到该名称的所有声明 但有一个例外 称为 struct hack 或 类型 非类型隐藏 在同一范围内 名称的某些出现可能引用声明的一个class struct union enum那不是一个typedef 而
  • java中整数数组的优先级队列

    我想按数组 0 30 5 10 15 20 的第二个元素进行比较 PriorityQueue
  • Swift 3 中的 NSNotifications

    新通知目前在 Swift 3 中不起作用吗 我在做 NotificationCenter default post name DidTouchParticleView object self particle as AnyObject 在自
  • 为什么 NSManagedObjectContext 队列在主线程上执行?

    当我发送一个performBlock给我的 MOC 类型的消息NSPrivateQueueConcurrencyType 像这样 self privateManagedObjectContext performBlockAndWait if
  • 如何在Fragment内的WebView中添加“返回”功能?

    更新 解决了 问题与我的 Viewpager 有关 而不是与 WebView 有关 我正在尝试向我的应用程序添加 返回 功能WebView这是在一个Fragment 但我不知道如何 public final class TestFragme
  • 默认模型绑定器的 MVC 本地化

    我目前正在尝试找出如何本地化 MVC 生成的错误消息 让我使用默认的模型绑定器作为示例 以便我可以解释问题 假设我有一个表单 用户可以在其中输入他们的年龄 然后用户在表单中输入 十 但没有得到预期的错误 年龄必须在 18 岁至 25 岁之间
  • Spring security自定义AuthenticationException消息

    您好 我需要在 Spring 安全登录表单中添加一个新的异常 除了我想要自己的错误消息 到目前为止它显示 错误的登录 密码 之外 一切都运行良好 我已覆盖用户名密码身份验证过滤器中的默认尝试身份验证方法 Override public Au
  • 从 firestore 获取数据时使用 async forEach 循环

    我的 firestore 数据有点像这样 Support userid abcdxyz message hello 我正在使用 nodejs 来获取我的数据 我还想显示发送此消息的人的电子邮件地址和姓名 所以我正在使用以下函数 databa