我使用的是swift和Firestore,在我的应用程序中,我有一个快照侦听器,它在每次更改某些文档时都检索数据。由于我希望这种情况每秒发生很多次,因此我想限制快照监听器每2秒检索一次数据。这可能吗?我到处看,但是什么也找不到。
答案 0 :(得分:2)
Cloud Firestore将您的数据存储在多个数据中心,并且仅在将所有数据写入所有这些数据之后,才确认写入操作。因此,Cloud Firestore中单个文档的最大更新频率大约为每秒一次。因此,如果您的计划是每秒更新一次文档,那么无论如何将无法正常工作。
没有办法限制Firestore多久广播一次对基础数据的更新。如果数据得到更新,它将被广播给所有活动的侦听器。
典型的解决方案是限制更新数据的频率。如果没有人会看到大量的更新,则最好不要将它们写入到数据库中。这种逻辑通常是通过客户端的限制/去抖来完成的(请参见1,2)。
答案 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")
}