我有以下代码从firebase数据库中读取:
db.collection(ColPath)
.get()
.then(data => {
const results : any[] = [];
if (data.docs.length > 0) {
data.docs.forEach(doc => {
const d = doc.data();
results.push(d);
});
}
});
我的问题是:它能读取多少个数据库?
我假设得到的收藏只是一读。但是doc.data()呢?每个文件都读一次吗?如果是这样,则forEach循环使其执行多次数据库读取。正确吗?
答案 0 :(得分:3)
每次读取文档都会读取一次。一切都围绕着单个文档。集合只是容器。他们没有被阅读。
您的查询将对查询匹配的每个文档进行一次读取。
foreach循环不会导致发生读取。调用data()不会导致发生读取。执行查询会导致读取发生。如果执行查询而对结果不执行任何操作,则仍会读取文档并将其存储在内存中(查询不知道您想对它们做什么)。