【问题标题】:Flutter Firestore listen for document modificationFlutter Firestore 监听文档修改
【发布时间】:2019-09-12 19:54:39
【问题描述】:

我正在检查 Flutter firestore 依赖项,想知道如何才能仅获取新添加或修改的文档?

我不确定代码是否会先返回集合'abc'中的所有快照,然后过滤修改过的快照?

因为如果它返回所有快照并且我的集合有 100 万个快照并且只有 1 个被修改,那么我的代码最终将读取所有 100 万个快照以获取那 1 个已修改的快照。

Firestore.instance.collection('abc').snapshots().listen((data){
    data.forEach((change) {
       if(change.type == DocumentChangeType.Modified) {
       }
    })
})

【问题讨论】:

    标签: flutter google-cloud-firestore


    【解决方案1】:

    查询的侦听器(没有过滤器的集合仍然是查询)将始终在第一个回调中将整个结果集作为“添加”文档接收。以后对这些文档的更改将显示为对这些文档的修改。

    因此,如果您的集合中有 100 万个文档,则此查询将尝试读取整个集合,这可能不是您想要的。您将需要一种使用 where 子句过滤集合的方法。考虑在每个文档中存储一个时间戳,如果您只想随着时间的推移进行增量更新,则只查询该时间戳之后的文档。

    【讨论】:

      猜你喜欢
      • 2020-03-15
      • 2019-05-27
      • 2018-11-01
      • 2021-06-04
      • 2021-01-08
      • 2019-05-24
      • 1970-01-01
      • 1970-01-01
      • 2020-07-24
      相关资源
      最近更新 更多