Мое намерение здесь состоит в том, чтобы отобразить сообщение Toast, если пользователь вводит комбинацию электронной почты и пароля, которая не соответствует ни одному из профилей пользователей в базе данных Firestore.
Я пробовал это несколькими способами, но он отказывается вызывать код внутри "if (! document.exists ()))." Я попытался опустить "(! Document.exists) и просто использовать" else "- ничего.
Все остальное прекрасно работает." If (document.exists ()) "с радостью возвращает информацию и входит в систему. Пожалуйста, дайте мне знать, если мне нужно добавить больше информации!
FirestoreRepository:
public void queryUserByEmailPassword(String email, String password) {
Query userQuery = userColRef.whereEqualTo("email", email).whereEqualTo("password", password);
userQuery.get().addOnCompleteListener(querySnapshotOnCompleteListener);
}
LoginViewModel:
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if (task.isSuccessful()) {
for (QueryDocumentSnapshot doc : task.getResult()) {
if (!document.exists()) { // this code will NOT execute
Log.d(TAG, "Error getting documents: ", task.getException());
return;
} else { // this code executes flawlessly
user = doc.toObject(User.class);
currentUser.setValue(user);
doesUserExist.setValue(true);
repo.signIn(user.getEmail(), user.getPassword());
}
}
}
}