Как можно, чтобы слушатель Firestore onSnapshot только отправлял изменения? - PullRequest
0 голосов
/ 17 января 2020

Я создаю приложение, в котором мои пользователи могут отправлять сообщения друг другу. Когда пользователь открывает поток, все сообщения должны быть загружены. Затем они подписываются на сообщения этой ветки, поэтому они также получают обновления. Я хотел бы, чтобы Firestore отправлял только новые сообщения (а не весь контент темы) для каждого добавленного сообщения. Для этого я подписываю своих пользователей запросом сообщений, добавленных после текущего времени:

let messageData = firebase.firestore().collection('/messages/');

messageData.where('time', '>' , new Date() ).onSnapshot(
      docSnapshot => {
        docSnapshot.forEach(doc => {
          ///
        });
      }
);

Однако, как вы можете себе представить, это только частичное решение, так как после этого всегда будут пересылаться все сообщения после этого. указать c дату для каждого добавленного сообщения. Я мог бы отписаться от моих пользователей после каждого полученного сообщения, а затем повторно подписать их с обновленным временем, но я чувствую, что это не совсем так, как это должно было произойти.

Заранее спасибо!

...