Я предлагаю вам использовать размер. Примерно так: 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;
}
}