Я пытаюсь проверить, открывают ли 2 пользователя чат друг с другом. Код работал, но когда я добавил функцию, она больше не работает.
Это код:
firebaseFirestore.collection(getString(R.string.app_name)).document("App Collections")
.collection("Users").document(contactID).collection("Chats With").document(userID).addSnapshotListener(new EventListener<DocumentSnapshot>() {
@Override
public void onEvent(@Nullable DocumentSnapshot documentSnapshot, @Nullable FirebaseFirestoreException e) {
boolean chatOpened = documentSnapshot.getBoolean("chat opened");
if (!chatOpened) {
firebaseFirestore.collection(getString(R.string.app_name)).document("App Collections")
.collection("Users").document(contactID).collection("Chats With").document(userID)
.update("chat opened", false);
} else if (chatOpened) {
firebaseFirestore.collection(getString(R.string.app_name)).document("App Collections")
.collection("Users").document(contactID).collection("Chats With").document(userID)
.update("chat opened", true);
}
}
});
Если текущий пользователь (userID) открыл чат ипользователь чата (contactID) уже открыл его, так что они открывают чат одновременно, поле «чат открыт» в документе contactID должно оставаться истинным. Что происходит, так это то, что оно меняется на false.
Скриншот базы данных
Как я могу проверить, открывают ли 2 пользователя чат одновременно?