【发布时间】:2020-05-24 10:20:47
【问题描述】:
result[] 将在数据准备好之前执行。我什至试图用承诺来解决问题,但也没有成功..
import { firestore } from "../../../firebase";
export default (req, res) => {
firestore
.collection("category-filters")
.where(req.query.categoryKey, "==", true)
.get()
.then(querySnapshot => {
let result = [];
querySnapshot.docs.map(doc => {
firestore
.collection("payment-accounts")
.doc(doc.id)
.get()
.then(item => {
if (item.data().creditAmount > 0) {
firestore
.collection("professional-profiles")
.doc(item.id)
.get()
.then(endresult => {
result.push({ id: endresult.id, ...endresult.data() }); // executes successful
});
}
});
});
res.json({ result }); // the data is outputted before the "querySnapshot.docs.map" is executed...
// therefore received a blank array (result)
});
};
【问题讨论】:
标签: reactjs firebase google-cloud-firestore server-side next.js