Я создаю случайное приложение для чата 1: 1 с Flutter и Firestore.Но у меня есть состояние гонки, когда я подключаю второго пользователя к чату.
Это код моего клиентского приложения для добавления второго пользователя в Firestore (первый пользователь уже добавлен в документ Firestore):
await chatRoomReference.setData({
‘secondUserUID': uid,
});
Когда второй пользователь коснется чата, я удаляю опцию, чтобы войти в негочат из всех клиентских интерфейсов.Но возможно, что если третий пользователь нажмет на чат одновременно (до того как пользователь получит обновление из потока), он также будет добавлен в базу данных.Чат не должен допустить этого.
Как избежать состояния гонки?
Спасибо!
ОБНОВЛЕНИЕ:
Каждый пользователь чата добавляется как новый документ в отдельную коллекцию пользователей для чата.