Убедитесь, что 2 пользователя открывают чат одновременно - PullRequest
0 голосов
/ 30 октября 2019

Я пытаюсь проверить, открывают ли 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 пользователя чат одновременно?

...