Я внедряю приложение чата и использую облачный пожарный магазин в качестве базы данных для множества сообщений чата. Однако, если я создаю поток для прослушивания чата получателя, он так медленно обновляет пользовательский интерфейс в представлении отправителя, потому что он синхронизируется с представлением получателя.
Поэтому я попытался немедленно обновить представление отправителя и лениво обновить представление получателя сервером. Но это приводит к проблеме отсутствия синхронизации с двумя сообщениями чата. Есть ли способ реализовать технику синхронизации?
- Обновление представления отправителя в сообщении получателя
/// Uupdate by Stream, so it is slow
chatRoomListSubscriptions[otherUser.uid] = chatRoomListServer[otherUser.uid].listen((snapshot){
if(snapshot.documentChanges.isNotEmpty) {
_updateChatHistory(otherUser, chatRoomID, snapshot);
}
});
- Обновление представления отправителя в сообщении отправителя (себя)
/// Update by friendsChatBloc
friendsChatBloc.emitEvent(FriendsChatEventMessageSend(
content: messageController.text,
receiver: widget.receiver.uid,
chatRoomID: widget.chatRoomID
));
Как мне синхронизировать два чата и быстро обновить вид отправителя? Спасибо.