Я пытаюсь выяснить, существует ли какой-либо элемент в моей базе данных.
Если его нет, я бы хотел добавить его.
Если он существует, мне бы хотелосьпоказать сообщение.
Код, который я использую:
CollectionReference colRefMyBooks = db.collection( "Users" ).document( auth.getUid() ).collection( "MyBooks" );
Query queryMyBooks = colRefMyBooks.whereEqualTo("BookID", bookId);
queryMyBooks.get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if (task.isSuccessful()) {
for (QueryDocumentSnapshot document : task.getResult()) {
Toast.makeText(BookDetailActivity.this, "Book already in my list", Toast.LENGTH_SHORT).show();
}
} else {
db.collection( "Users" ).document( auth.getUid() ).collection( "MyBooks" ).add( general_book );
}
}
});
Этот код хорошо работает, пока существует коллекция "MyBooks"
. Однако, если нет коллекции "Mybooks"
, я хочу, чтобы она считала ее неуспешной и, следовательно, добавила элемент.
Что я получаю, так это то, что она пропускает весь объект onComplete и поэтому неДобавить что-нибудь.
Значит ли это, что я должен сначала проверить, существует ли коллекция, и внутри нее, если документ?
Спасибо