Автоматическая отправка сообщений PyTelegramAPI после обновления FireBase

Мне нужно сделать так, чтобы после новой записи в Cloud Firestore Телеграм бот отправлял сообщение с этой самой записью.

Я пытался вызвать 'bot.send_message' внутри этой функции, когда слушал изменения в БД, но это не работает. В консоли все работает.

PyTelegramAPI

def on_snapshot(doc_snapshot, changes, read_time):
   recent = []
   for doc in doc_snapshot:
       data = f'{"Имя: ", doc.get("name")}'
       recent.append(data)
   print('\n'.join(recent))
   recent.clear()
   callback_done.set()
doc_watch = items_ref.on_snapshot(on_snapshot)

Ответы (1 шт):

Автор решения: Александр

Я нашел ответ. Необходимо воспользоваться bot.send_message, предварительно получив id вашего чата. Для этого вам надо в любой функции с аргументом message получить id вот так:

@bot.message_handler(commands=['start'])
def start(message):
# получаем id
    print(message.chat.id)

После того как id появился в консоли, копируем его. Теперь мы можем его использовать. Слушаем изменения БД (FireBase)

def on_snapshot(doc_snapshot, changes, read_time):
    bot.send_message(your_id,'database has been changed')

Подробнее о отслеживании изменений в реальном времени: https://firebase.google.com/docs/firestore/query-data/listen?authuser=0

→ Ссылка