Firebase 实时监听cloud_firestore查询的读取计数是多少?可以做得更好吗?

Firebase 实时监听cloud_firestore查询的读取计数是多少?可以做得更好吗?,firebase,flutter,google-cloud-firestore,Firebase,Flutter,Google Cloud Firestore,假设我在颤振/飞镖中有以下伪代码: Stream<List<T>> list() { Query query = Firestore.instance.collection("items"); return query.snapshots().map((snapshot) { return snapshot.documents.map((doc) { return standardSeri

假设我在颤振/飞镖中有以下伪代码:

  Stream<List<T>> list() {
      Query query = Firestore.instance.collection("items");
      return query.snapshots().map((snapshot) {
        return snapshot.documents.map((doc) {
          return standardSerializers.deserializeWith(serializer, doc.data());
        }).toList();
      });
  }
这可能适用于像iOS和Android这样的所有环境,因为这本质上是一个更一般的“firestore”问题,但我使用的是Flatter/dart中的示例,以防它与FlatterFire插件有关

提前谢谢。

Q1:即使只修改了一个文档进行此查询,也会计算10次文档读取吗? 否,如文件中所述:

当您收听查询[注意:(或集合或子集合)]的结果时,您将收取读取费用 每次添加或更新结果集中的文档时。你是 从结果集中删除文档时,还将收取读取费用 因为文档已更改。(相反,当文档 已删除,则不收取阅读费用。)

此外,如果侦听器断开连接的时间超过30分钟(例如 例如,如果用户脱机),您将按以下方式收取读取费用: 如果您发布了一个全新的查询。[注意:您的示例中有10条内容。]

问题2:如果答案是肯定的,那么下一个问题。。。 问题1的答案是“否”:-)

问题3:有没有办法只检索已更改的文档? 是的,请参阅,这说明了如何在查询快照之间捕获查询结果的实际更改,而不是简单地使用整个查询快照。对于Flutter,您应该使用属性

firebase_database: ^4.0.0
firebase_auth: ^0.18.0+1
cloud_firestore: ^0.14.0+2