Como verificar se alguns dados já existem no firestore ou não

Antes de adicionar um novo dado ao firestore, quero verificar se já existe um dado do mesmo tipo no banco de dados ou não. Se já houver um dado presente, quero impedir o usuário de inserir dados duplicados no banco de dados. No meu caso, é como uma reserva de compromisso, se já existe uma reserva para o mesmo horário, quero impedir que os usuários reservem ao mesmo tempo. Tentei usar a função de consulta, mas não impede a entrada de dados duplicados.

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;
        }
    }