【问题标题】:Limit frequency with which firestore retrieves data限制 Firestore 检索数据的频率
【发布时间】:2019-11-04 22:59:54
【问题描述】:

我正在使用 swift 和 Firestore,在我的应用程序中我有一个快照监听器,它在每次更改某些文档时检索数据。因为我希望这种情况每秒发生多次,所以我想限制快照侦听器每 2 秒检索一次数据,例如。这可能吗?我到处找,但什么也没找到。

【问题讨论】:

  • 这个问题是违反直觉的。将 snapshotListener 添加到节点旨在以实时、事件驱动的方式呈现对应用程序的更改。如果您想每两秒获取一次数据,那更像是一种 polling 策略并且违背了侦听器的目的。如果您想要轮询,则根本不要添加侦听器,而只需每两秒读取一次您想要的节点。更大的问题是,既然您选择了实时数据库,为什么不想要实时数据?在事件发生时使用事件有什么挑战?

标签: swift firebase google-cloud-firestore


【解决方案1】:

Cloud Firestore 将您的数据存储在多个数据中心,并且只有在将数据写入所有这些数据中心后才会确认写入操作。因此,Cloud Firestore 中单个文档的最大更新频率约为每秒一次。因此,如果您的计划是每秒多次更新文档,那无论如何都行不通。


无法对 Firestore 广播基础数据更新的频率设置限制。如果数据得到更新,则会将其广播给所有活动的侦听器。

典型的解决方案是限制更新数据的频率。如果没有人会看到大量更新,您最好不要将它们写入到数据库中。这种逻辑通常通过客户端节流/去抖动来完成(请参阅12)。

【讨论】:

    猜你喜欢
    • 2021-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-30
    • 2019-06-19
    • 2018-11-06
    • 1970-01-01
    相关资源
    最近更新 更多