gpt4 book ai didi

node.js - 从 firestore 获取数据时使用 async forEach 循环

转载 作者:太空宇宙 更新时间:2023-11-04 01:40:18 24 4
gpt4 key购买 nike

我的 firestore 数据有点像这样:

“支持”:{
"用户ID":"abcdxyz",
“消息”:“你好”
}

我正在使用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)
}

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

关于node.js - 从 firestore 获取数据时使用 async forEach 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53149138/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com