tldr: мне нужно иметь облачные функции Google на моем собственном бэкэнде.
Я пишу приложение, которое использует firebase (особенно firestore) в качестве транспортного уровня между моим собственным бэкэндом, написанным на nodejs и клиентскими приложениями.
Иногда мне нужно отлавливать некоторые события от клиента на бэкенде, но я хочу избежать выполнения http-запросов непосредственно на бэкэнд (потому что мне нужно отлавливать статус офлайн и другие проблемы).Лучше внести некоторые изменения в документы FireStore, отследить эти изменения на моем бэкенде и выполнить некоторую бизнес-логику.
На данный момент это можно решить с помощью облачных функций, но это решение неприемлемо из-зазадержка между вызовом события и функции и отсутствие порядка вызова.
Еще одно решение, которое в настоящее время используется в моем проекте, состоит в том, чтобы внести некоторые изменения в документ пожарного хранилища и добавить дополнительный документ, называемый «событие», вдругая коллекция.На стороне сервера, используя firebase-admin sdk, я подписываюсь на эту коллекцию «events» и получаю ее обновления в реальном времени.
Это прекрасно работает, но выглядит слишком сложным.Есть ли способ подписаться на мой бэкэнд, чтобы получать все обновления всех документов firestore?Идеальное решение - подписаться на обновления, как это было сделано в облачных функциях: https://firebase.google.com/docs/functions/firestore-events?authuser=0