bot.on("callback_query", function(callbackQuery) {
угадал по твоему ответу
Моя проблема, похоже, связана с интеграцией Firebase. Как моя база данных обновляется;
Файловая библиотека firebase nodejs работает в режиме реального времени, и прослушиватель on активирует любое значение, которое изменяется в дереве пути, на который вы подписаны. В этом случае, чтобы минимизировать триггерные точки, я бы рекомендовал следующее:
Полагаю, вы можете включить прослушиватель на некоторый базовый путь с несколькими значениями json внутри. Вместо этого вы можете получить что-то вроде ниже:
// a.firebaseio.com/x -> some firebase path on which you have on listener
y: {
key1: value1,
key2: value2,
.
.
key200: value200
}
Здесь, в зависимости от того, какие значения изменятся, будет активирован ваш прослушиватель. Теперь я полагаю, что вы по своей сути заинтересованы только в изменении некоторых значений (скажем, значения 1 и значения 2)
Один из способов справиться с этим - написать несколько букв
Multiwrite обеспечит одновременную запись всех ваших записей и вызовет только одно событие прослушивателя
Второй подход заключается в отслеживании последней обновленной отметки времени
Давайте представим вторую структуру
// a.firebaseio.com/x -> some firebase path on which you have on listener
y: {
key1: value1,
key2: value2,
.
.
key200: value200
},
lastUpdatedTs: <epochTs>
Вы помещаете свой прослушиватель в lastUpdatedTs и обновляете его, используя multiwrite, всякий раз, когда обновляете что-то важное внутри объекта y. Всякий раз, когда lastUpdatedTs изменяется, вы идете вперед и делаете выборку из базы данных для y. Это позволяет вам намного лучше управлять газом и не допустить, чтобы в вашем коде использовалась база данных для прослушивания.