Я выполнял простой проект, когда столкнулся с проблемой в коде базы данных firestore. Когда я проверяю, существует ли документ, он возвращает только истинное, но не ложное событие, когда оно должно делать
Мой код:
db.collection("Users")
.where("email", "= = ", state.email_value).get()
.then(function(querySnapshot) {
querySnapshot.forEach(function(doc) {
if (doc.exists) {
console.info("Document Exist");
} else {
console.info("Document Doesn't Exist);
}
});
});
Код выполняется только тогда, когда условие истинно, но не ложно. Я даже пытался вывести значение doc.exists
, но оно выводится только тогда, когда оно истинно.
Если документов нет, querySnapshot.forEach(function(doc) ...
никогда не будет введен.
Вместо этого вы захотите проверить, есть ли результаты у самого запроса:
db.collection("Users")
.where("email", "= = ", state.email_value).get()
.then(function(querySnapshot) {
if (!querySnapshot.empty) {
console.info("Document Exist");
}
else {
console.info("Document Doesn't Exist");
}
});
В подобных ситуациях я настоятельно рекомендую держать под рукой справочную документацию Firebase: https://firebase.google.com/docs/reference/js/firebase.firestore.QuerySnapshot
большое спасибо весь день искал.