Я предлагаю вам использовать размер. Примерно так: queryDocumentSnapshots.size ()

добавлением новых данных в хранилище я хочу убедиться, что в базе данных уже есть данные того же типа или нет. Если данные уже присутствуют, это означает, что я хочу запретить пользователю вводить дубликаты данных в базу данных. В моем случае это похоже на бронирование по предварительной записи, если уже существует бронирование на то же время, я хочу запретить пользователям бронировать в одно и то же время. Я пытался использовать функцию запроса, но это не мешает вводу дубликатов данных.

private boolean alreadyBooked(final String boname, final String bodept, final String botime) {
        final int[] flag = {0};
        CollectionReference cref=db.collection("bookingdetails");
        Query q1=cref.whereEqualTo("time",botime).whereEqualTo("dept",bodept);
        q1.get().addOnSuccessListener(new OnSuccessListener<QuerySnapshot>() {
            @Override
            public void onSuccess(QuerySnapshot queryDocumentSnapshots) {
                for (DocumentSnapshot ds : queryDocumentSnapshots) {
                    String rname, rdept, rtime;
                    rname = ds.getString("name");
                    rdept = ds.getString("dept");
                    rtime = ds.getString("time");
                    if (rdept.equals(botime)) {
                        if (rtime.equals(botime)) {
                            flag[0] = 1;
                            return;
                        }
                    }
                }
            }
        });
        if(flag[0]==1){
            return true;
        }
        else {
            return false;
        }
    }

Ответы на вопрос(1)

Ваш ответ на вопрос