Я создаю приложение, в котором мои пользователи могут отправлять сообщения друг другу. Когда пользователь открывает поток, все сообщения должны быть загружены. Затем они подписываются на сообщения этой ветки, поэтому они также получают обновления. Я хотел бы, чтобы Firestore отправлял только новые сообщения (а не весь контент темы) для каждого добавленного сообщения. Для этого я подписываю своих пользователей запросом сообщений, добавленных после текущего времени:
let messageData = firebase.firestore().collection('/messages/');
messageData.where('time', '>' , new Date() ).onSnapshot(
docSnapshot => {
docSnapshot.forEach(doc => {
///
});
}
);
Однако, как вы можете себе представить, это только частичное решение, так как после этого всегда будут пересылаться все сообщения после этого. указать c дату для каждого добавленного сообщения. Я мог бы отписаться от моих пользователей после каждого полученного сообщения, а затем повторно подписать их с обновленным временем, но я чувствую, что это не совсем так, как это должно было произойти.
Заранее спасибо!