获取Firebase集合并遍历数据:读取了多少个数据库?

时间:2019-02-07 22:32:10

标签: firebase google-cloud-firestore

我有以下代码从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循环使其执行多次数据库读取。正确吗?

1 个答案:

答案 0 :(得分:3)

每次读取文档都会读取一次。一切都围绕着单个文档。集合只是容器。他们没有被阅读。

您的查询将对查询匹配的每个文档进行一次读取。

foreach循环不会导致发生读取。调用data()不会导致发生读取。执行查询会导致读取发生。如果执行查询而对结果不执行任何操作,则仍会读取文档并将其存储在内存中(查询不知道您想对它们做什么)。

相关问题