首页 文章

如何计算Firestore查询/操作位置的读/写?

提问于
浏览
0

Firebase Firestore文档说:

从集合中获取多个文档您还可以通过查询集合中的文档来检索具有一个请求的多个文档 . 例如,您可以使用where()查询满足特定条件的所有文档,然后使用get()来检索结果:

var citiesRef = db.collection('cities');
var query = citiesRef.where('capital', '==', true).get()
    .then(snapshot => {
      snapshot.forEach(doc => {
        console.log(doc.id, '=>', doc.data());
      });
    })
    .catch(err => {
      console.log('Error getting documents', err);
    });

如果我有一个包含N个文档的集合,对于上述查询,我会产生N读取费用还是单次读取?

有没有办法使用SDK在每次调用的基础上检索读/写计数?

作为我的理性问题的背景,我有一个包含大量文档的单个集合(大约20,000个) . 我想以最具成本效益的方式(最少读取)导出整个集合的文档 .

2 回答

  • 0

    查询产生的每个文档都被视为文档读取 . 如果您的查询匹配并返回N个文档,则将花费N个文档读取 .

  • 2

    数据库将从N个文档中读取,以便对它们进行全部过滤 . 但只有成功通过 'capital', '==', true 测试的文档才会在本地下载 . 您不必害怕拥有大量文档,但是当您获取文档时,您需要确保只获得所需的文档,因为下载它们会降低您的应用程序速度 .

    使用低嵌套数据时,Firebase更有效 . 您希望它们在许多集合中进行标准化而不是子集合

    https://firebase.google.com/docs/database/ios/structure-data

相关问题