javascript - 从 Firestore 异步获取数据
问题描述
我正在尝试从我的 Firestore 数据库中获取数据,但我无法正确执行此操作。
我的问题是console.log(allData.length)总是打印0,因为我猜它超过了代码的异步部分,但我无法弄清楚以某种方式使“userDataSnapshot.docs.map”异步。关于如何正确执行此操作的任何提示?
const allData = [];
const userDataSnapshot = await db.collection("userdata").get();
userDataSnapshot.docs.map(async (doc) => {
var userObject = [];
userObject.push(doc.id);
var snapshot = await doc.ref.collection("advanceddata").get();
snapshot.docs.map((doc) => {
userObject.push(doc.data());
});
allData.push(userObject);
});
console.log(allData.length);
解决方案
我相信这会有所帮助:
const allData = [];
const userDataSnapshot = await db.collection("userdata").get();
for(const doc of userDataSnapshot.docs) {
var userObject = [];
userObject.push(doc.id);
var snapshot = await doc.ref.collection("advanceddata").get();
snapshot.docs.map((doc) => {
userObject.push(doc.data());
});
allData.push(userObject);
}
console.log(allData.length);
推荐阅读
- java - 代码在我的计算机上运行良好,但在“hackerearth”平台上在线运行时出现 NullPointerException
- accessibility - 当我删除一个字符 VoiceOver 时,除了第二个字符之外,被删除的字符被宣布
- tfs - 有没有办法从 TFS 构建生成 Intellitrace 文件?
- node.js - Tizen 和 Ubuntu 的兼容性
- bash - 如何循环 CURL 命令?
- python - 如何将对象与字符串进行比较?
- react-native - 如何有条件地渲染输入附件视图?
- node.js - 将数据从节点传递到 React
- fonts - jsPDF中ZaptDingBats和Symbols的映射是什么?
- python - 如何将零添加到一位数(时间)?