限制Firestore检索数据的频率

时间:2019-06-22 10:04:14

标签: swift firebase google-cloud-firestore

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

2 个答案:

答案 0 :(得分:2)

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


没有办法限制Firestore多久广播一次对基础数据的更新。如果数据得到更新,它将被广播给所有活动的侦听器。

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

答案 1 :(得分:-1)

var timer: Timer?
func startTime() {
    timer = Timer.scheduledTimer(timeInterval: 2.0,
                                 target: self,
                                 selector: #selector(eventWith(timer:)),
                                 userInfo: [ "foo" : "bar" ],
                                 repeats: true)
}
func stopTime {
    timer?.invalidate()
}
// Timer expects @objc selector
@objc func eventWith(timer: Timer!) {

    print("YourFireStoreFunction")
}