#firebase #flutter #google-cloud-firestore
#firebase #flutter #google-cloud-firestore
Вопрос:
В моей базе данных есть документ, в котором есть поле bizCode: ‘123456’. Выполнение приведенного ниже возвращает значение TRUE и выводит ‘код существует’.
Однако, когда я изменяю isEqualTo: ‘abcdef’ (который не существует в моей базе данных), ничего не возвращается и не распечатывается.
Как я должен закодировать это, чтобы, когда запрос не дает результатов, он печатал возвращает false или null или пробел и печатал «такого кода нет»?
await FirebaseFirestore.instance
.collection("users")
.where('bizCode', isEqualTo: '123456')
.get()
.then((querySnapshot) {
querySnapshot.docs.forEach((result) {
print(result.exists);
if (result.exists) {
print('code exists');
} else {
print('no such code');
}
});
Ответ №1:
Я думаю, вы хотите проверить querySnapshot.hasError
, и querySnapshot.size > 0
.
Комментарии:
1. Спасибо! Я думаю, что на данный момент querySnapshot.size достаточен для использования.
Ответ №2:
Я мог бы дать вам идею. Вы можете проверить длину результата.
Сделайте что-то вроде этого.
await FirebaseFirestore.instance
.collection("users")
.where('bizCode', isEqualTo: '123456')
.get()
.then((querySnapshot) {
if(querySnapshot.size > 0){
var results = querySnapshot.docs;
results.forEach((result) {
if (result.exists) {
print('code exists');
} else {
print('no such code');
}
}else{
print("No Results Found!");
}
});
Надеюсь, это подходит для вашего случая.