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