Предельная частота, с которой пожарный магазин получает данные - PullRequest
0 голосов
/ 22 июня 2019

Я использую swift и Firestore, и в моем приложении у меня есть snapshotlistener, который извлекает данные каждый раз, когда некоторые документы меняются. Поскольку я ожидаю, что это будет происходить много раз в секунду, я бы хотел ограничить функцию snapshotlistener, например, для получения данных каждые 2 секунды. Это возможно? Я искал везде, но ничего не мог найти.

Ответы [ 2 ]

2 голосов
/ 22 июня 2019

Cloud Firestore хранит ваши данные в нескольких центрах обработки данных и подтверждает операции записи только после их записи во все из них.По этой причине максимальная частота обновления одного документа в Cloud Firestore составляет примерно один раз в секунду.Поэтому, если вы планируете обновлять документ много раз в секунду, это все равно не сработает.


Невозможно установить ограничение на частоту, с которой Firestore передает обновления для базовых данных.Если данные обновляются, они передаются всем активным слушателям.

Типичным решением будет ограничение частоты обновления данных.Если никто не увидит значительную часть обновлений, вы также можете не записать их в базу данных.Такая логика, если часто выполняется с дросселем / дебатом на стороне клиента (см. 1 , 2 ).

0 голосов
/ 22 июня 2019
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")
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...