我正在构建一个应用程序,我的用户可以在其中相互发送消息。用户打开线程时,应加载所有消息。然后,他们订阅该线程的消息,以便它们也接收更新。我希望Firestore仅为每个添加的消息发送新消息(而不是整个线程内容)。 为此,我为用户预订了查询查询当前时间之后添加的消息:
let messageData = firebase.firestore().collection('/messages/');
messageData.where('time', '>' , new Date() ).onSnapshot(
docSnapshot => {
docSnapshot.forEach(doc => {
///
});
}
);
但是,您可以想象,这只是部分解决方案,因为它将始终在该特定日期之后为所有添加的消息重新发送所有消息。 我可以在收到每条消息后退订我的用户,然后用更新的时间重新订阅他们,但是我觉得那并不是应该发生的事情。
谢谢!