Firestore: как получить поток обновлений со стороны сервера? - PullRequest
0 голосов
/ 24 октября 2018

tldr: мне нужно иметь облачные функции Google на моем собственном бэкэнде.

Я пишу приложение, которое использует firebase (особенно firestore) в качестве транспортного уровня между моим собственным бэкэндом, написанным на nodejs и клиентскими приложениями.

Иногда мне нужно отлавливать некоторые события от клиента на бэкенде, но я хочу избежать выполнения http-запросов непосредственно на бэкэнд (потому что мне нужно отлавливать статус офлайн и другие проблемы).Лучше внести некоторые изменения в документы FireStore, отследить эти изменения на моем бэкенде и выполнить некоторую бизнес-логику.

На данный момент это можно решить с помощью облачных функций, но это решение неприемлемо из-зазадержка между вызовом события и функции и отсутствие порядка вызова.

Еще одно решение, которое в настоящее время используется в моем проекте, состоит в том, чтобы внести некоторые изменения в документ пожарного хранилища и добавить дополнительный документ, называемый «событие», вдругая коллекция.На стороне сервера, используя firebase-admin sdk, я подписываюсь на эту коллекцию «events» и получаю ее обновления в реальном времени.

Это прекрасно работает, но выглядит слишком сложным.Есть ли способ подписаться на мой бэкэнд, чтобы получать все обновления всех документов firestore?Идеальное решение - подписаться на обновления, как это было сделано в облачных функциях: https://firebase.google.com/docs/functions/firestore-events?authuser=0

1 Ответ

0 голосов
/ 24 октября 2018

Клиентский и серверный SDK не имеют такой возможности.Облачные функции - это действительно единственный способ получать уведомления об изменениях в Firestore, которые соответствуют шаблону с подстановочными знаками.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...